// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: chat.proto

#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
#include "chat.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
class UserDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<User> {
} _User_default_instance_;
class ClientDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<Client> {
} _Client_default_instance_;
class AuthReqBodyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<AuthReqBody> {
} _AuthReqBody_default_instance_;
class AuthRespBodyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<AuthRespBody> {
} _AuthRespBody_default_instance_;
class LoginReqBodyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<LoginReqBody> {
} _LoginReqBody_default_instance_;
class LoginRespBodyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<LoginRespBody> {
} _LoginRespBody_default_instance_;
class JoinGroupReqBodyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<JoinGroupReqBody> {
} _JoinGroupReqBody_default_instance_;
class JoinGroupRespBodyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<JoinGroupRespBody> {
} _JoinGroupRespBody_default_instance_;
class JoinGroupNotifyRespBodyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<JoinGroupNotifyRespBody> {
} _JoinGroupNotifyRespBody_default_instance_;
class ExitGroupNotifyRespBodyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ExitGroupNotifyRespBody> {
} _ExitGroupNotifyRespBody_default_instance_;
class ChatReqBodyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ChatReqBody> {
} _ChatReqBody_default_instance_;
class ChatRespBodyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ChatRespBody> {
} _ChatRespBody_default_instance_;
class ClientPageReqBodyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ClientPageReqBody> {
} _ClientPageReqBody_default_instance_;
class ClientPageRespBodyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ClientPageRespBody> {
} _ClientPageRespBody_default_instance_;
class BeginToLiveReqBodyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<BeginToLiveReqBody> {
} _BeginToLiveReqBody_default_instance_;
class BeginToLiveRespBodyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<BeginToLiveRespBody> {
} _BeginToLiveRespBody_default_instance_;
class EndLiveReqBodyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<EndLiveReqBody> {
} _EndLiveReqBody_default_instance_;
class EndLiveRespBodyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<EndLiveRespBody> {
} _EndLiveRespBody_default_instance_;

namespace protobuf_chat_2eproto {


namespace {

::google::protobuf::Metadata file_level_metadata[18];
const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[4];

}  // namespace

const ::google::protobuf::uint32 TableStruct::offsets[] = {
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(User, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(User, id_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(User, nick_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(User, avatar_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Client, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Client, id_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Client, ip_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Client, port_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Client, user_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Client, region_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Client, useragent_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AuthReqBody, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AuthReqBody, token_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AuthReqBody, deviceid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AuthReqBody, seq_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AuthReqBody, devicetype_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AuthReqBody, cid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AuthReqBody, appversion_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AuthReqBody, deviceinfo_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AuthReqBody, sign_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AuthRespBody, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LoginReqBody, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LoginReqBody, loginname_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LoginReqBody, password_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LoginReqBody, token_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LoginRespBody, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LoginRespBody, token_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LoginRespBody, user_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(JoinGroupReqBody, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(JoinGroupReqBody, group_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(JoinGroupRespBody, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(JoinGroupRespBody, result_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(JoinGroupRespBody, group_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(JoinGroupNotifyRespBody, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(JoinGroupNotifyRespBody, client_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(JoinGroupNotifyRespBody, group_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ExitGroupNotifyRespBody, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ExitGroupNotifyRespBody, client_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ExitGroupNotifyRespBody, group_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChatReqBody, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChatReqBody, time_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChatReqBody, type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChatReqBody, text_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChatReqBody, group_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChatReqBody, toid_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChatRespBody, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChatRespBody, time_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChatRespBody, type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChatRespBody, text_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChatRespBody, fromclient_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChatRespBody, toclient_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChatRespBody, group_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChatRespBody, id_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ClientPageReqBody, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ClientPageReqBody, pageindex_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ClientPageReqBody, pagesize_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ClientPageReqBody, group_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ClientPageRespBody, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ClientPageRespBody, pageindex_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ClientPageRespBody, pagesize_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ClientPageRespBody, recordcount_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ClientPageRespBody, clients_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BeginToLiveReqBody, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BeginToLiveReqBody, time_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BeginToLiveRespBody, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BeginToLiveRespBody, time_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BeginToLiveRespBody, liveid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BeginToLiveRespBody, rtmppublishurl_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BeginToLiveRespBody, rtmpliveurl_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EndLiveReqBody, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EndLiveReqBody, time_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EndLiveRespBody, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EndLiveRespBody, time_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EndLiveRespBody, liveid_),
};

static const ::google::protobuf::internal::MigrationSchema schemas[] = {
  { 0, -1, sizeof(User)},
  { 7, -1, sizeof(Client)},
  { 17, -1, sizeof(AuthReqBody)},
  { 29, -1, sizeof(AuthRespBody)},
  { 33, -1, sizeof(LoginReqBody)},
  { 40, -1, sizeof(LoginRespBody)},
  { 46, -1, sizeof(JoinGroupReqBody)},
  { 51, -1, sizeof(JoinGroupRespBody)},
  { 57, -1, sizeof(JoinGroupNotifyRespBody)},
  { 63, -1, sizeof(ExitGroupNotifyRespBody)},
  { 69, -1, sizeof(ChatReqBody)},
  { 78, -1, sizeof(ChatRespBody)},
  { 89, -1, sizeof(ClientPageReqBody)},
  { 96, -1, sizeof(ClientPageRespBody)},
  { 104, -1, sizeof(BeginToLiveReqBody)},
  { 109, -1, sizeof(BeginToLiveRespBody)},
  { 117, -1, sizeof(EndLiveReqBody)},
  { 122, -1, sizeof(EndLiveRespBody)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&_User_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_Client_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_AuthReqBody_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_AuthRespBody_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_LoginReqBody_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_LoginRespBody_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_JoinGroupReqBody_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_JoinGroupRespBody_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_JoinGroupNotifyRespBody_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ExitGroupNotifyRespBody_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ChatReqBody_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ChatRespBody_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ClientPageReqBody_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ClientPageRespBody_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_BeginToLiveReqBody_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_BeginToLiveRespBody_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_EndLiveReqBody_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_EndLiveRespBody_default_instance_),
};

namespace {

void protobuf_AssignDescriptors() {
  AddDescriptors();
  ::google::protobuf::MessageFactory* factory = NULL;
  AssignDescriptors(
      "chat.proto", schemas, file_default_instances, TableStruct::offsets, factory,
      file_level_metadata, file_level_enum_descriptors, NULL);
}

void protobuf_AssignDescriptorsOnce() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
}

void protobuf_RegisterTypes(const ::std::string&) GOOGLE_ATTRIBUTE_COLD;
void protobuf_RegisterTypes(const ::std::string&) {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 18);
}

}  // namespace

void TableStruct::Shutdown() {
  _User_default_instance_.Shutdown();
  delete file_level_metadata[0].reflection;
  _Client_default_instance_.Shutdown();
  delete file_level_metadata[1].reflection;
  _AuthReqBody_default_instance_.Shutdown();
  delete file_level_metadata[2].reflection;
  _AuthRespBody_default_instance_.Shutdown();
  delete file_level_metadata[3].reflection;
  _LoginReqBody_default_instance_.Shutdown();
  delete file_level_metadata[4].reflection;
  _LoginRespBody_default_instance_.Shutdown();
  delete file_level_metadata[5].reflection;
  _JoinGroupReqBody_default_instance_.Shutdown();
  delete file_level_metadata[6].reflection;
  _JoinGroupRespBody_default_instance_.Shutdown();
  delete file_level_metadata[7].reflection;
  _JoinGroupNotifyRespBody_default_instance_.Shutdown();
  delete file_level_metadata[8].reflection;
  _ExitGroupNotifyRespBody_default_instance_.Shutdown();
  delete file_level_metadata[9].reflection;
  _ChatReqBody_default_instance_.Shutdown();
  delete file_level_metadata[10].reflection;
  _ChatRespBody_default_instance_.Shutdown();
  delete file_level_metadata[11].reflection;
  _ClientPageReqBody_default_instance_.Shutdown();
  delete file_level_metadata[12].reflection;
  _ClientPageRespBody_default_instance_.Shutdown();
  delete file_level_metadata[13].reflection;
  _BeginToLiveReqBody_default_instance_.Shutdown();
  delete file_level_metadata[14].reflection;
  _BeginToLiveRespBody_default_instance_.Shutdown();
  delete file_level_metadata[15].reflection;
  _EndLiveReqBody_default_instance_.Shutdown();
  delete file_level_metadata[16].reflection;
  _EndLiveRespBody_default_instance_.Shutdown();
  delete file_level_metadata[17].reflection;
}

void TableStruct::InitDefaultsImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  ::google::protobuf::internal::InitProtobufDefaults();
  _User_default_instance_.DefaultConstruct();
  _Client_default_instance_.DefaultConstruct();
  _AuthReqBody_default_instance_.DefaultConstruct();
  _AuthRespBody_default_instance_.DefaultConstruct();
  _LoginReqBody_default_instance_.DefaultConstruct();
  _LoginRespBody_default_instance_.DefaultConstruct();
  _JoinGroupReqBody_default_instance_.DefaultConstruct();
  _JoinGroupRespBody_default_instance_.DefaultConstruct();
  _JoinGroupNotifyRespBody_default_instance_.DefaultConstruct();
  _ExitGroupNotifyRespBody_default_instance_.DefaultConstruct();
  _ChatReqBody_default_instance_.DefaultConstruct();
  _ChatRespBody_default_instance_.DefaultConstruct();
  _ClientPageReqBody_default_instance_.DefaultConstruct();
  _ClientPageRespBody_default_instance_.DefaultConstruct();
  _BeginToLiveReqBody_default_instance_.DefaultConstruct();
  _BeginToLiveRespBody_default_instance_.DefaultConstruct();
  _EndLiveReqBody_default_instance_.DefaultConstruct();
  _EndLiveRespBody_default_instance_.DefaultConstruct();
  _Client_default_instance_.get_mutable()->user_ = const_cast< ::User*>(
      ::User::internal_default_instance());
  _LoginRespBody_default_instance_.get_mutable()->user_ = const_cast< ::User*>(
      ::User::internal_default_instance());
  _JoinGroupNotifyRespBody_default_instance_.get_mutable()->client_ = const_cast< ::Client*>(
      ::Client::internal_default_instance());
  _ExitGroupNotifyRespBody_default_instance_.get_mutable()->client_ = const_cast< ::Client*>(
      ::Client::internal_default_instance());
  _ChatRespBody_default_instance_.get_mutable()->fromclient_ = const_cast< ::Client*>(
      ::Client::internal_default_instance());
  _ChatRespBody_default_instance_.get_mutable()->toclient_ = const_cast< ::Client*>(
      ::Client::internal_default_instance());
}

void InitDefaults() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
}
void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] = {
      "\n\nchat.proto\"0\n\004User\022\n\n\002id\030\001 \001(\003\022\014\n\004nick"
      "\030\002 \001(\t\022\016\n\006avatar\030\003 \001(\t\"f\n\006Client\022\n\n\002id\030\001"
      " \001(\t\022\n\n\002ip\030\002 \001(\t\022\014\n\004port\030\003 \001(\005\022\023\n\004user\030\004"
      " \001(\0132\005.User\022\016\n\006region\030\005 \001(\t\022\021\n\tuseragent"
      "\030\006 \001(\t\"\237\001\n\013AuthReqBody\022\r\n\005token\030\001 \001(\t\022\020\n"
      "\010deviceId\030\002 \001(\t\022\013\n\003seq\030\003 \001(\003\022\037\n\ndeviceTy"
      "pe\030\004 \001(\0162\013.DeviceType\022\013\n\003cid\030\005 \001(\t\022\022\n\nap"
      "pVersion\030\006 \001(\t\022\022\n\ndeviceInfo\030\007 \001(\t\022\014\n\004si"
      "gn\030\010 \001(\t\"\016\n\014AuthRespBody\"B\n\014LoginReqBody"
      "\022\021\n\tloginname\030\001 \001(\t\022\020\n\010password\030\002 \001(\t\022\r\n"
      "\005token\030\003 \001(\t\"3\n\rLoginRespBody\022\r\n\005token\030\001"
      " \001(\t\022\023\n\004user\030\002 \001(\0132\005.User\"!\n\020JoinGroupRe"
      "qBody\022\r\n\005group\030\001 \001(\t\"D\n\021JoinGroupRespBod"
      "y\022 \n\006result\030\001 \001(\0162\020.JoinGroupResult\022\r\n\005g"
      "roup\030\002 \001(\t\"A\n\027JoinGroupNotifyRespBody\022\027\n"
      "\006client\030\001 \001(\0132\007.Client\022\r\n\005group\030\002 \001(\t\"A\n"
      "\027ExitGroupNotifyRespBody\022\027\n\006client\030\001 \001(\013"
      "2\007.Client\022\r\n\005group\030\002 \001(\t\"_\n\013ChatReqBody\022"
      "\014\n\004time\030\001 \001(\003\022\027\n\004type\030\002 \001(\0162\t.ChatType\022\014"
      "\n\004text\030\003 \001(\t\022\r\n\005group\030\004 \001(\t\022\014\n\004toId\030\005 \001("
      "\t\"\226\001\n\014ChatRespBody\022\014\n\004time\030\001 \001(\003\022\027\n\004type"
      "\030\002 \001(\0162\t.ChatType\022\014\n\004text\030\003 \001(\t\022\033\n\nfromC"
      "lient\030\004 \001(\0132\007.Client\022\031\n\010toClient\030\005 \001(\0132\007"
      ".Client\022\r\n\005group\030\006 \001(\t\022\n\n\002id\030\007 \001(\t\"G\n\021Cl"
      "ientPageReqBody\022\021\n\tpageIndex\030\001 \001(\005\022\020\n\010pa"
      "geSize\030\002 \001(\005\022\r\n\005group\030\003 \001(\t\"h\n\022ClientPag"
      "eRespBody\022\021\n\tpageIndex\030\001 \001(\005\022\020\n\010pageSize"
      "\030\002 \001(\005\022\023\n\013recordCount\030\003 \001(\005\022\030\n\007clients\030\004"
      " \003(\0132\007.Client\"\"\n\022BeginToLiveReqBody\022\014\n\004t"
      "ime\030\001 \001(\003\"`\n\023BeginToLiveRespBody\022\014\n\004time"
      "\030\001 \001(\003\022\016\n\006liveid\030\002 \001(\003\022\026\n\016rtmppublishurl"
      "\030\003 \001(\t\022\023\n\013rtmpliveurl\030\004 \001(\t\"\036\n\016EndLiveRe"
      "qBody\022\014\n\004time\030\001 \001(\003\"/\n\017EndLiveRespBody\022\014"
      "\n\004time\030\001 \001(\003\022\016\n\006liveid\030\002 \001(\003*f\n\nDeviceTy"
      "pe\022\026\n\022DEVICE_TYPE_UNKNOW\020\000\022\022\n\016DEVICE_TYP"
      "E_PC\020\001\022\027\n\023DEVICE_TYPE_ANDROID\020\002\022\023\n\017DEVIC"
      "E_TYPE_IOS\020\003*\371\004\n\007Command\022\022\n\016COMMAND_UNKN"
      "OW\020\000\022\031\n\025COMMAND_HANDSHAKE_REQ\020\001\022\032\n\026COMMA"
      "ND_HANDSHAKE_RESP\020\002\022\024\n\020COMMAND_AUTH_REQ\020"
      "\003\022\025\n\021COMMAND_AUTH_RESP\020\004\022\032\n\026COMMAND_JOIN"
      "_GROUP_REQ\020\005\022\033\n\027COMMAND_JOIN_GROUP_RESP\020"
      "\006\022\"\n\036COMMAND_JOIN_GROUP_NOTIFY_RESP\020\007\022\"\n"
      "\036COMMAND_EXIT_GROUP_NOTIFY_RESP\020\024\022\024\n\020COM"
      "MAND_CHAT_REQ\020\010\022\025\n\021COMMAND_CHAT_RESP\020\t\022\032"
      "\n\026COMMAND_START_SHOW_REQ\020\n\022\033\n\027COMMAND_ST"
      "ART_SHOW_RESP\020\013\022\030\n\024COMMAND_END_SHOW_REQ\020"
      "\014\022 \n\034COMMAND_END_SHOW_NOTIFY_RESP\020\r\022\031\n\025C"
      "OMMAND_HEARTBEAT_REQ\020\016\022\025\n\021COMMAND_CLOSE_"
      "REQ\020\017\022\033\n\027COMMAND_CLIENT_PAGE_REQ\020\020\022\034\n\030CO"
      "MMAND_CLIENT_PAGE_RESP\020\021\022\025\n\021COMMAND_LOGI"
      "N_REQ\020\022\022\026\n\022COMMAND_LOGIN_RESP\020\023\022\032\n\026COMMA"
      "ND_CANCEL_MSG_REQ\020\025\022\033\n\027COMMAND_CANCEL_MS"
      "G_RESP\020\026*\320\001\n\017JoinGroupResult\022\034\n\030JOIN_GRO"
      "UP_RESULT_UNKNOW\020\000\022\030\n\024JOIN_GROUP_RESULT_"
      "OK\020\001\022\037\n\033JOIN_GROUP_RESULT_NOT_EXIST\020\002\022 \n"
      "\034JOIN_GROUP_RESULT_GROUP_FULL\020\003\022!\n\035JOIN_"
      "GROUP_RESULT_IN_BACKLIST\020\004\022\037\n\033JOIN_GROUP"
      "_RESULT_TAKEOUTED\020\005*M\n\010ChatType\022\024\n\020CHAT_"
      "TYPE_UNKNOW\020\000\022\024\n\020CHAT_TYPE_PUBLIC\020\001\022\025\n\021C"
      "HAT_TYPE_PRIVATE\020\002B&\n\"org.tio.examples.i"
      "m.common.packetsP\001b\006proto3"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 2426);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "chat.proto", &protobuf_RegisterTypes);
  ::google::protobuf::internal::OnShutdown(&TableStruct::Shutdown);
}

void AddDescriptors() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at static initialization time.
struct StaticDescriptorInitializer {
  StaticDescriptorInitializer() {
    AddDescriptors();
  }
} static_descriptor_initializer;

}  // namespace protobuf_chat_2eproto

const ::google::protobuf::EnumDescriptor* DeviceType_descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_enum_descriptors[0];
}
bool DeviceType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

const ::google::protobuf::EnumDescriptor* Command_descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_enum_descriptors[1];
}
bool Command_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
      return true;
    default:
      return false;
  }
}

const ::google::protobuf::EnumDescriptor* JoinGroupResult_descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_enum_descriptors[2];
}
bool JoinGroupResult_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      return true;
    default:
      return false;
  }
}

const ::google::protobuf::EnumDescriptor* ChatType_descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_enum_descriptors[3];
}
bool ChatType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}


// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int User::kIdFieldNumber;
const int User::kNickFieldNumber;
const int User::kAvatarFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

User::User()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:User)
}
User::User(const User& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  nick_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.nick().size() > 0) {
    nick_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.nick_);
  }
  avatar_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.avatar().size() > 0) {
    avatar_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.avatar_);
  }
  id_ = from.id_;
  // @@protoc_insertion_point(copy_constructor:User)
}

void User::SharedCtor() {
  nick_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  avatar_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_ = GOOGLE_LONGLONG(0);
  _cached_size_ = 0;
}

User::~User() {
  // @@protoc_insertion_point(destructor:User)
  SharedDtor();
}

void User::SharedDtor() {
  nick_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  avatar_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void User::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* User::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[0].descriptor;
}

const User& User::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

User* User::New(::google::protobuf::Arena* arena) const {
  User* n = new User;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void User::Clear() {
// @@protoc_insertion_point(message_clear_start:User)
  nick_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  avatar_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_ = GOOGLE_LONGLONG(0);
}

bool User::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:User)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // int64 id = 1;
      case 1: {
        if (tag == 8u) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &id_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string nick = 2;
      case 2: {
        if (tag == 18u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_nick()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->nick().data(), this->nick().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "User.nick"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string avatar = 3;
      case 3: {
        if (tag == 26u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_avatar()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->avatar().data(), this->avatar().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "User.avatar"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:User)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:User)
  return false;
#undef DO_
}

void User::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:User)
  // int64 id = 1;
  if (this->id() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->id(), output);
  }

  // string nick = 2;
  if (this->nick().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->nick().data(), this->nick().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "User.nick");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->nick(), output);
  }

  // string avatar = 3;
  if (this->avatar().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->avatar().data(), this->avatar().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "User.avatar");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->avatar(), output);
  }

  // @@protoc_insertion_point(serialize_end:User)
}

::google::protobuf::uint8* User::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:User)
  // int64 id = 1;
  if (this->id() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->id(), target);
  }

  // string nick = 2;
  if (this->nick().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->nick().data(), this->nick().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "User.nick");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->nick(), target);
  }

  // string avatar = 3;
  if (this->avatar().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->avatar().data(), this->avatar().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "User.avatar");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->avatar(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:User)
  return target;
}

size_t User::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:User)
  size_t total_size = 0;

  // string nick = 2;
  if (this->nick().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->nick());
  }

  // string avatar = 3;
  if (this->avatar().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->avatar());
  }

  // int64 id = 1;
  if (this->id() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->id());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void User::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:User)
  GOOGLE_DCHECK_NE(&from, this);
  const User* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const User>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:User)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:User)
    MergeFrom(*source);
  }
}

void User::MergeFrom(const User& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:User)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.nick().size() > 0) {

    nick_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.nick_);
  }
  if (from.avatar().size() > 0) {

    avatar_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.avatar_);
  }
  if (from.id() != 0) {
    set_id(from.id());
  }
}

void User::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:User)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void User::CopyFrom(const User& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:User)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool User::IsInitialized() const {
  return true;
}

void User::Swap(User* other) {
  if (other == this) return;
  InternalSwap(other);
}
void User::InternalSwap(User* other) {
  nick_.Swap(&other->nick_);
  avatar_.Swap(&other->avatar_);
  std::swap(id_, other->id_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata User::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[0];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// User

// int64 id = 1;
void User::clear_id() {
  id_ = GOOGLE_LONGLONG(0);
}
::google::protobuf::int64 User::id() const {
  // @@protoc_insertion_point(field_get:User.id)
  return id_;
}
void User::set_id(::google::protobuf::int64 value) {
  
  id_ = value;
  // @@protoc_insertion_point(field_set:User.id)
}

// string nick = 2;
void User::clear_nick() {
  nick_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& User::nick() const {
  // @@protoc_insertion_point(field_get:User.nick)
  return nick_.GetNoArena();
}
void User::set_nick(const ::std::string& value) {
  
  nick_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:User.nick)
}
#if LANG_CXX11
void User::set_nick(::std::string&& value) {
  
  nick_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:User.nick)
}
#endif
void User::set_nick(const char* value) {
  
  nick_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:User.nick)
}
void User::set_nick(const char* value, size_t size) {
  
  nick_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:User.nick)
}
::std::string* User::mutable_nick() {
  
  // @@protoc_insertion_point(field_mutable:User.nick)
  return nick_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* User::release_nick() {
  // @@protoc_insertion_point(field_release:User.nick)
  
  return nick_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void User::set_allocated_nick(::std::string* nick) {
  if (nick != NULL) {
    
  } else {
    
  }
  nick_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), nick);
  // @@protoc_insertion_point(field_set_allocated:User.nick)
}

// string avatar = 3;
void User::clear_avatar() {
  avatar_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& User::avatar() const {
  // @@protoc_insertion_point(field_get:User.avatar)
  return avatar_.GetNoArena();
}
void User::set_avatar(const ::std::string& value) {
  
  avatar_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:User.avatar)
}
#if LANG_CXX11
void User::set_avatar(::std::string&& value) {
  
  avatar_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:User.avatar)
}
#endif
void User::set_avatar(const char* value) {
  
  avatar_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:User.avatar)
}
void User::set_avatar(const char* value, size_t size) {
  
  avatar_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:User.avatar)
}
::std::string* User::mutable_avatar() {
  
  // @@protoc_insertion_point(field_mutable:User.avatar)
  return avatar_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* User::release_avatar() {
  // @@protoc_insertion_point(field_release:User.avatar)
  
  return avatar_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void User::set_allocated_avatar(::std::string* avatar) {
  if (avatar != NULL) {
    
  } else {
    
  }
  avatar_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), avatar);
  // @@protoc_insertion_point(field_set_allocated:User.avatar)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Client::kIdFieldNumber;
const int Client::kIpFieldNumber;
const int Client::kPortFieldNumber;
const int Client::kUserFieldNumber;
const int Client::kRegionFieldNumber;
const int Client::kUseragentFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Client::Client()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:Client)
}
Client::Client(const Client& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  ip_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.ip().size() > 0) {
    ip_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.ip_);
  }
  region_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.region().size() > 0) {
    region_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.region_);
  }
  useragent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.useragent().size() > 0) {
    useragent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.useragent_);
  }
  if (from.has_user()) {
    user_ = new ::User(*from.user_);
  } else {
    user_ = NULL;
  }
  port_ = from.port_;
  // @@protoc_insertion_point(copy_constructor:Client)
}

void Client::SharedCtor() {
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ip_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  region_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  useragent_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&user_, 0, reinterpret_cast<char*>(&port_) -
    reinterpret_cast<char*>(&user_) + sizeof(port_));
  _cached_size_ = 0;
}

Client::~Client() {
  // @@protoc_insertion_point(destructor:Client)
  SharedDtor();
}

void Client::SharedDtor() {
  id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ip_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  region_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  useragent_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) {
    delete user_;
  }
}

void Client::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* Client::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[1].descriptor;
}

const Client& Client::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

Client* Client::New(::google::protobuf::Arena* arena) const {
  Client* n = new Client;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void Client::Clear() {
// @@protoc_insertion_point(message_clear_start:Client)
  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ip_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  region_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  useragent_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == NULL && user_ != NULL) {
    delete user_;
  }
  user_ = NULL;
  port_ = 0;
}

bool Client::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:Client)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string id = 1;
      case 1: {
        if (tag == 10u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), this->id().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "Client.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string ip = 2;
      case 2: {
        if (tag == 18u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_ip()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->ip().data(), this->ip().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "Client.ip"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 port = 3;
      case 3: {
        if (tag == 24u) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &port_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .User user = 4;
      case 4: {
        if (tag == 34u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_user()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string region = 5;
      case 5: {
        if (tag == 42u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_region()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->region().data(), this->region().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "Client.region"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string useragent = 6;
      case 6: {
        if (tag == 50u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_useragent()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->useragent().data(), this->useragent().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "Client.useragent"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:Client)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:Client)
  return false;
#undef DO_
}

void Client::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:Client)
  // string id = 1;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), this->id().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "Client.id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->id(), output);
  }

  // string ip = 2;
  if (this->ip().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->ip().data(), this->ip().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "Client.ip");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->ip(), output);
  }

  // int32 port = 3;
  if (this->port() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->port(), output);
  }

  // .User user = 4;
  if (this->has_user()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, *this->user_, output);
  }

  // string region = 5;
  if (this->region().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->region().data(), this->region().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "Client.region");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->region(), output);
  }

  // string useragent = 6;
  if (this->useragent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->useragent().data(), this->useragent().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "Client.useragent");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->useragent(), output);
  }

  // @@protoc_insertion_point(serialize_end:Client)
}

::google::protobuf::uint8* Client::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:Client)
  // string id = 1;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), this->id().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "Client.id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->id(), target);
  }

  // string ip = 2;
  if (this->ip().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->ip().data(), this->ip().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "Client.ip");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->ip(), target);
  }

  // int32 port = 3;
  if (this->port() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->port(), target);
  }

  // .User user = 4;
  if (this->has_user()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        4, *this->user_, false, target);
  }

  // string region = 5;
  if (this->region().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->region().data(), this->region().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "Client.region");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->region(), target);
  }

  // string useragent = 6;
  if (this->useragent().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->useragent().data(), this->useragent().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "Client.useragent");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->useragent(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:Client)
  return target;
}

size_t Client::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Client)
  size_t total_size = 0;

  // string id = 1;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->id());
  }

  // string ip = 2;
  if (this->ip().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->ip());
  }

  // string region = 5;
  if (this->region().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->region());
  }

  // string useragent = 6;
  if (this->useragent().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->useragent());
  }

  // .User user = 4;
  if (this->has_user()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->user_);
  }

  // int32 port = 3;
  if (this->port() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->port());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void Client::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Client)
  GOOGLE_DCHECK_NE(&from, this);
  const Client* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Client>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Client)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Client)
    MergeFrom(*source);
  }
}

void Client::MergeFrom(const Client& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Client)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.ip().size() > 0) {

    ip_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.ip_);
  }
  if (from.region().size() > 0) {

    region_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.region_);
  }
  if (from.useragent().size() > 0) {

    useragent_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.useragent_);
  }
  if (from.has_user()) {
    mutable_user()->::User::MergeFrom(from.user());
  }
  if (from.port() != 0) {
    set_port(from.port());
  }
}

void Client::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Client)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Client::CopyFrom(const Client& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Client)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Client::IsInitialized() const {
  return true;
}

void Client::Swap(Client* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Client::InternalSwap(Client* other) {
  id_.Swap(&other->id_);
  ip_.Swap(&other->ip_);
  region_.Swap(&other->region_);
  useragent_.Swap(&other->useragent_);
  std::swap(user_, other->user_);
  std::swap(port_, other->port_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata Client::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[1];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// Client

// string id = 1;
void Client::clear_id() {
  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Client::id() const {
  // @@protoc_insertion_point(field_get:Client.id)
  return id_.GetNoArena();
}
void Client::set_id(const ::std::string& value) {
  
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:Client.id)
}
#if LANG_CXX11
void Client::set_id(::std::string&& value) {
  
  id_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:Client.id)
}
#endif
void Client::set_id(const char* value) {
  
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:Client.id)
}
void Client::set_id(const char* value, size_t size) {
  
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:Client.id)
}
::std::string* Client::mutable_id() {
  
  // @@protoc_insertion_point(field_mutable:Client.id)
  return id_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Client::release_id() {
  // @@protoc_insertion_point(field_release:Client.id)
  
  return id_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Client::set_allocated_id(::std::string* id) {
  if (id != NULL) {
    
  } else {
    
  }
  id_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), id);
  // @@protoc_insertion_point(field_set_allocated:Client.id)
}

// string ip = 2;
void Client::clear_ip() {
  ip_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Client::ip() const {
  // @@protoc_insertion_point(field_get:Client.ip)
  return ip_.GetNoArena();
}
void Client::set_ip(const ::std::string& value) {
  
  ip_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:Client.ip)
}
#if LANG_CXX11
void Client::set_ip(::std::string&& value) {
  
  ip_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:Client.ip)
}
#endif
void Client::set_ip(const char* value) {
  
  ip_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:Client.ip)
}
void Client::set_ip(const char* value, size_t size) {
  
  ip_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:Client.ip)
}
::std::string* Client::mutable_ip() {
  
  // @@protoc_insertion_point(field_mutable:Client.ip)
  return ip_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Client::release_ip() {
  // @@protoc_insertion_point(field_release:Client.ip)
  
  return ip_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Client::set_allocated_ip(::std::string* ip) {
  if (ip != NULL) {
    
  } else {
    
  }
  ip_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ip);
  // @@protoc_insertion_point(field_set_allocated:Client.ip)
}

// int32 port = 3;
void Client::clear_port() {
  port_ = 0;
}
::google::protobuf::int32 Client::port() const {
  // @@protoc_insertion_point(field_get:Client.port)
  return port_;
}
void Client::set_port(::google::protobuf::int32 value) {
  
  port_ = value;
  // @@protoc_insertion_point(field_set:Client.port)
}

// .User user = 4;
bool Client::has_user() const {
  return this != internal_default_instance() && user_ != NULL;
}
void Client::clear_user() {
  if (GetArenaNoVirtual() == NULL && user_ != NULL) delete user_;
  user_ = NULL;
}
const ::User& Client::user() const {
  // @@protoc_insertion_point(field_get:Client.user)
  return user_ != NULL ? *user_
                         : *::User::internal_default_instance();
}
::User* Client::mutable_user() {
  
  if (user_ == NULL) {
    user_ = new ::User;
  }
  // @@protoc_insertion_point(field_mutable:Client.user)
  return user_;
}
::User* Client::release_user() {
  // @@protoc_insertion_point(field_release:Client.user)
  
  ::User* temp = user_;
  user_ = NULL;
  return temp;
}
void Client::set_allocated_user(::User* user) {
  delete user_;
  user_ = user;
  if (user) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:Client.user)
}

// string region = 5;
void Client::clear_region() {
  region_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Client::region() const {
  // @@protoc_insertion_point(field_get:Client.region)
  return region_.GetNoArena();
}
void Client::set_region(const ::std::string& value) {
  
  region_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:Client.region)
}
#if LANG_CXX11
void Client::set_region(::std::string&& value) {
  
  region_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:Client.region)
}
#endif
void Client::set_region(const char* value) {
  
  region_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:Client.region)
}
void Client::set_region(const char* value, size_t size) {
  
  region_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:Client.region)
}
::std::string* Client::mutable_region() {
  
  // @@protoc_insertion_point(field_mutable:Client.region)
  return region_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Client::release_region() {
  // @@protoc_insertion_point(field_release:Client.region)
  
  return region_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Client::set_allocated_region(::std::string* region) {
  if (region != NULL) {
    
  } else {
    
  }
  region_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), region);
  // @@protoc_insertion_point(field_set_allocated:Client.region)
}

// string useragent = 6;
void Client::clear_useragent() {
  useragent_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& Client::useragent() const {
  // @@protoc_insertion_point(field_get:Client.useragent)
  return useragent_.GetNoArena();
}
void Client::set_useragent(const ::std::string& value) {
  
  useragent_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:Client.useragent)
}
#if LANG_CXX11
void Client::set_useragent(::std::string&& value) {
  
  useragent_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:Client.useragent)
}
#endif
void Client::set_useragent(const char* value) {
  
  useragent_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:Client.useragent)
}
void Client::set_useragent(const char* value, size_t size) {
  
  useragent_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:Client.useragent)
}
::std::string* Client::mutable_useragent() {
  
  // @@protoc_insertion_point(field_mutable:Client.useragent)
  return useragent_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* Client::release_useragent() {
  // @@protoc_insertion_point(field_release:Client.useragent)
  
  return useragent_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void Client::set_allocated_useragent(::std::string* useragent) {
  if (useragent != NULL) {
    
  } else {
    
  }
  useragent_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), useragent);
  // @@protoc_insertion_point(field_set_allocated:Client.useragent)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int AuthReqBody::kTokenFieldNumber;
const int AuthReqBody::kDeviceIdFieldNumber;
const int AuthReqBody::kSeqFieldNumber;
const int AuthReqBody::kDeviceTypeFieldNumber;
const int AuthReqBody::kCidFieldNumber;
const int AuthReqBody::kAppVersionFieldNumber;
const int AuthReqBody::kDeviceInfoFieldNumber;
const int AuthReqBody::kSignFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

AuthReqBody::AuthReqBody()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:AuthReqBody)
}
AuthReqBody::AuthReqBody(const AuthReqBody& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.token().size() > 0) {
    token_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.token_);
  }
  deviceid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.deviceid().size() > 0) {
    deviceid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.deviceid_);
  }
  cid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.cid().size() > 0) {
    cid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.cid_);
  }
  appversion_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.appversion().size() > 0) {
    appversion_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.appversion_);
  }
  deviceinfo_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.deviceinfo().size() > 0) {
    deviceinfo_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.deviceinfo_);
  }
  sign_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.sign().size() > 0) {
    sign_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.sign_);
  }
  ::memcpy(&seq_, &from.seq_,
    reinterpret_cast<char*>(&devicetype_) -
    reinterpret_cast<char*>(&seq_) + sizeof(devicetype_));
  // @@protoc_insertion_point(copy_constructor:AuthReqBody)
}

void AuthReqBody::SharedCtor() {
  token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  deviceid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  cid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  appversion_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  deviceinfo_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  sign_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&seq_, 0, reinterpret_cast<char*>(&devicetype_) -
    reinterpret_cast<char*>(&seq_) + sizeof(devicetype_));
  _cached_size_ = 0;
}

AuthReqBody::~AuthReqBody() {
  // @@protoc_insertion_point(destructor:AuthReqBody)
  SharedDtor();
}

void AuthReqBody::SharedDtor() {
  token_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  deviceid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  cid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  appversion_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  deviceinfo_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  sign_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void AuthReqBody::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* AuthReqBody::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[2].descriptor;
}

const AuthReqBody& AuthReqBody::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

AuthReqBody* AuthReqBody::New(::google::protobuf::Arena* arena) const {
  AuthReqBody* n = new AuthReqBody;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void AuthReqBody::Clear() {
// @@protoc_insertion_point(message_clear_start:AuthReqBody)
  token_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  deviceid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  cid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  appversion_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  deviceinfo_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  sign_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&seq_, 0, reinterpret_cast<char*>(&devicetype_) -
    reinterpret_cast<char*>(&seq_) + sizeof(devicetype_));
}

bool AuthReqBody::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:AuthReqBody)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string token = 1;
      case 1: {
        if (tag == 10u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_token()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->token().data(), this->token().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "AuthReqBody.token"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string deviceId = 2;
      case 2: {
        if (tag == 18u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_deviceid()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->deviceid().data(), this->deviceid().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "AuthReqBody.deviceId"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 seq = 3;
      case 3: {
        if (tag == 24u) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &seq_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .DeviceType deviceType = 4;
      case 4: {
        if (tag == 32u) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_devicetype(static_cast< ::DeviceType >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string cid = 5;
      case 5: {
        if (tag == 42u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_cid()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->cid().data(), this->cid().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "AuthReqBody.cid"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string appVersion = 6;
      case 6: {
        if (tag == 50u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_appversion()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->appversion().data(), this->appversion().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "AuthReqBody.appVersion"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string deviceInfo = 7;
      case 7: {
        if (tag == 58u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_deviceinfo()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->deviceinfo().data(), this->deviceinfo().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "AuthReqBody.deviceInfo"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string sign = 8;
      case 8: {
        if (tag == 66u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_sign()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->sign().data(), this->sign().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "AuthReqBody.sign"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:AuthReqBody)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:AuthReqBody)
  return false;
#undef DO_
}

void AuthReqBody::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:AuthReqBody)
  // string token = 1;
  if (this->token().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->token().data(), this->token().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "AuthReqBody.token");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->token(), output);
  }

  // string deviceId = 2;
  if (this->deviceid().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->deviceid().data(), this->deviceid().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "AuthReqBody.deviceId");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->deviceid(), output);
  }

  // int64 seq = 3;
  if (this->seq() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(3, this->seq(), output);
  }

  // .DeviceType deviceType = 4;
  if (this->devicetype() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      4, this->devicetype(), output);
  }

  // string cid = 5;
  if (this->cid().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->cid().data(), this->cid().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "AuthReqBody.cid");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->cid(), output);
  }

  // string appVersion = 6;
  if (this->appversion().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->appversion().data(), this->appversion().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "AuthReqBody.appVersion");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->appversion(), output);
  }

  // string deviceInfo = 7;
  if (this->deviceinfo().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->deviceinfo().data(), this->deviceinfo().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "AuthReqBody.deviceInfo");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      7, this->deviceinfo(), output);
  }

  // string sign = 8;
  if (this->sign().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->sign().data(), this->sign().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "AuthReqBody.sign");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      8, this->sign(), output);
  }

  // @@protoc_insertion_point(serialize_end:AuthReqBody)
}

::google::protobuf::uint8* AuthReqBody::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:AuthReqBody)
  // string token = 1;
  if (this->token().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->token().data(), this->token().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "AuthReqBody.token");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->token(), target);
  }

  // string deviceId = 2;
  if (this->deviceid().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->deviceid().data(), this->deviceid().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "AuthReqBody.deviceId");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->deviceid(), target);
  }

  // int64 seq = 3;
  if (this->seq() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(3, this->seq(), target);
  }

  // .DeviceType deviceType = 4;
  if (this->devicetype() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      4, this->devicetype(), target);
  }

  // string cid = 5;
  if (this->cid().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->cid().data(), this->cid().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "AuthReqBody.cid");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->cid(), target);
  }

  // string appVersion = 6;
  if (this->appversion().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->appversion().data(), this->appversion().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "AuthReqBody.appVersion");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->appversion(), target);
  }

  // string deviceInfo = 7;
  if (this->deviceinfo().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->deviceinfo().data(), this->deviceinfo().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "AuthReqBody.deviceInfo");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        7, this->deviceinfo(), target);
  }

  // string sign = 8;
  if (this->sign().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->sign().data(), this->sign().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "AuthReqBody.sign");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        8, this->sign(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:AuthReqBody)
  return target;
}

size_t AuthReqBody::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:AuthReqBody)
  size_t total_size = 0;

  // string token = 1;
  if (this->token().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->token());
  }

  // string deviceId = 2;
  if (this->deviceid().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->deviceid());
  }

  // string cid = 5;
  if (this->cid().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->cid());
  }

  // string appVersion = 6;
  if (this->appversion().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->appversion());
  }

  // string deviceInfo = 7;
  if (this->deviceinfo().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->deviceinfo());
  }

  // string sign = 8;
  if (this->sign().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->sign());
  }

  // int64 seq = 3;
  if (this->seq() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->seq());
  }

  // .DeviceType deviceType = 4;
  if (this->devicetype() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->devicetype());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void AuthReqBody::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:AuthReqBody)
  GOOGLE_DCHECK_NE(&from, this);
  const AuthReqBody* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const AuthReqBody>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:AuthReqBody)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:AuthReqBody)
    MergeFrom(*source);
  }
}

void AuthReqBody::MergeFrom(const AuthReqBody& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:AuthReqBody)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.token().size() > 0) {

    token_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.token_);
  }
  if (from.deviceid().size() > 0) {

    deviceid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.deviceid_);
  }
  if (from.cid().size() > 0) {

    cid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.cid_);
  }
  if (from.appversion().size() > 0) {

    appversion_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.appversion_);
  }
  if (from.deviceinfo().size() > 0) {

    deviceinfo_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.deviceinfo_);
  }
  if (from.sign().size() > 0) {

    sign_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.sign_);
  }
  if (from.seq() != 0) {
    set_seq(from.seq());
  }
  if (from.devicetype() != 0) {
    set_devicetype(from.devicetype());
  }
}

void AuthReqBody::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:AuthReqBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AuthReqBody::CopyFrom(const AuthReqBody& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:AuthReqBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AuthReqBody::IsInitialized() const {
  return true;
}

void AuthReqBody::Swap(AuthReqBody* other) {
  if (other == this) return;
  InternalSwap(other);
}
void AuthReqBody::InternalSwap(AuthReqBody* other) {
  token_.Swap(&other->token_);
  deviceid_.Swap(&other->deviceid_);
  cid_.Swap(&other->cid_);
  appversion_.Swap(&other->appversion_);
  deviceinfo_.Swap(&other->deviceinfo_);
  sign_.Swap(&other->sign_);
  std::swap(seq_, other->seq_);
  std::swap(devicetype_, other->devicetype_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata AuthReqBody::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[2];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// AuthReqBody

// string token = 1;
void AuthReqBody::clear_token() {
  token_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& AuthReqBody::token() const {
  // @@protoc_insertion_point(field_get:AuthReqBody.token)
  return token_.GetNoArena();
}
void AuthReqBody::set_token(const ::std::string& value) {
  
  token_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:AuthReqBody.token)
}
#if LANG_CXX11
void AuthReqBody::set_token(::std::string&& value) {
  
  token_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:AuthReqBody.token)
}
#endif
void AuthReqBody::set_token(const char* value) {
  
  token_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:AuthReqBody.token)
}
void AuthReqBody::set_token(const char* value, size_t size) {
  
  token_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:AuthReqBody.token)
}
::std::string* AuthReqBody::mutable_token() {
  
  // @@protoc_insertion_point(field_mutable:AuthReqBody.token)
  return token_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* AuthReqBody::release_token() {
  // @@protoc_insertion_point(field_release:AuthReqBody.token)
  
  return token_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void AuthReqBody::set_allocated_token(::std::string* token) {
  if (token != NULL) {
    
  } else {
    
  }
  token_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), token);
  // @@protoc_insertion_point(field_set_allocated:AuthReqBody.token)
}

// string deviceId = 2;
void AuthReqBody::clear_deviceid() {
  deviceid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& AuthReqBody::deviceid() const {
  // @@protoc_insertion_point(field_get:AuthReqBody.deviceId)
  return deviceid_.GetNoArena();
}
void AuthReqBody::set_deviceid(const ::std::string& value) {
  
  deviceid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:AuthReqBody.deviceId)
}
#if LANG_CXX11
void AuthReqBody::set_deviceid(::std::string&& value) {
  
  deviceid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:AuthReqBody.deviceId)
}
#endif
void AuthReqBody::set_deviceid(const char* value) {
  
  deviceid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:AuthReqBody.deviceId)
}
void AuthReqBody::set_deviceid(const char* value, size_t size) {
  
  deviceid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:AuthReqBody.deviceId)
}
::std::string* AuthReqBody::mutable_deviceid() {
  
  // @@protoc_insertion_point(field_mutable:AuthReqBody.deviceId)
  return deviceid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* AuthReqBody::release_deviceid() {
  // @@protoc_insertion_point(field_release:AuthReqBody.deviceId)
  
  return deviceid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void AuthReqBody::set_allocated_deviceid(::std::string* deviceid) {
  if (deviceid != NULL) {
    
  } else {
    
  }
  deviceid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), deviceid);
  // @@protoc_insertion_point(field_set_allocated:AuthReqBody.deviceId)
}

// int64 seq = 3;
void AuthReqBody::clear_seq() {
  seq_ = GOOGLE_LONGLONG(0);
}
::google::protobuf::int64 AuthReqBody::seq() const {
  // @@protoc_insertion_point(field_get:AuthReqBody.seq)
  return seq_;
}
void AuthReqBody::set_seq(::google::protobuf::int64 value) {
  
  seq_ = value;
  // @@protoc_insertion_point(field_set:AuthReqBody.seq)
}

// .DeviceType deviceType = 4;
void AuthReqBody::clear_devicetype() {
  devicetype_ = 0;
}
::DeviceType AuthReqBody::devicetype() const {
  // @@protoc_insertion_point(field_get:AuthReqBody.deviceType)
  return static_cast< ::DeviceType >(devicetype_);
}
void AuthReqBody::set_devicetype(::DeviceType value) {
  
  devicetype_ = value;
  // @@protoc_insertion_point(field_set:AuthReqBody.deviceType)
}

// string cid = 5;
void AuthReqBody::clear_cid() {
  cid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& AuthReqBody::cid() const {
  // @@protoc_insertion_point(field_get:AuthReqBody.cid)
  return cid_.GetNoArena();
}
void AuthReqBody::set_cid(const ::std::string& value) {
  
  cid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:AuthReqBody.cid)
}
#if LANG_CXX11
void AuthReqBody::set_cid(::std::string&& value) {
  
  cid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:AuthReqBody.cid)
}
#endif
void AuthReqBody::set_cid(const char* value) {
  
  cid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:AuthReqBody.cid)
}
void AuthReqBody::set_cid(const char* value, size_t size) {
  
  cid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:AuthReqBody.cid)
}
::std::string* AuthReqBody::mutable_cid() {
  
  // @@protoc_insertion_point(field_mutable:AuthReqBody.cid)
  return cid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* AuthReqBody::release_cid() {
  // @@protoc_insertion_point(field_release:AuthReqBody.cid)
  
  return cid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void AuthReqBody::set_allocated_cid(::std::string* cid) {
  if (cid != NULL) {
    
  } else {
    
  }
  cid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), cid);
  // @@protoc_insertion_point(field_set_allocated:AuthReqBody.cid)
}

// string appVersion = 6;
void AuthReqBody::clear_appversion() {
  appversion_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& AuthReqBody::appversion() const {
  // @@protoc_insertion_point(field_get:AuthReqBody.appVersion)
  return appversion_.GetNoArena();
}
void AuthReqBody::set_appversion(const ::std::string& value) {
  
  appversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:AuthReqBody.appVersion)
}
#if LANG_CXX11
void AuthReqBody::set_appversion(::std::string&& value) {
  
  appversion_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:AuthReqBody.appVersion)
}
#endif
void AuthReqBody::set_appversion(const char* value) {
  
  appversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:AuthReqBody.appVersion)
}
void AuthReqBody::set_appversion(const char* value, size_t size) {
  
  appversion_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:AuthReqBody.appVersion)
}
::std::string* AuthReqBody::mutable_appversion() {
  
  // @@protoc_insertion_point(field_mutable:AuthReqBody.appVersion)
  return appversion_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* AuthReqBody::release_appversion() {
  // @@protoc_insertion_point(field_release:AuthReqBody.appVersion)
  
  return appversion_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void AuthReqBody::set_allocated_appversion(::std::string* appversion) {
  if (appversion != NULL) {
    
  } else {
    
  }
  appversion_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), appversion);
  // @@protoc_insertion_point(field_set_allocated:AuthReqBody.appVersion)
}

// string deviceInfo = 7;
void AuthReqBody::clear_deviceinfo() {
  deviceinfo_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& AuthReqBody::deviceinfo() const {
  // @@protoc_insertion_point(field_get:AuthReqBody.deviceInfo)
  return deviceinfo_.GetNoArena();
}
void AuthReqBody::set_deviceinfo(const ::std::string& value) {
  
  deviceinfo_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:AuthReqBody.deviceInfo)
}
#if LANG_CXX11
void AuthReqBody::set_deviceinfo(::std::string&& value) {
  
  deviceinfo_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:AuthReqBody.deviceInfo)
}
#endif
void AuthReqBody::set_deviceinfo(const char* value) {
  
  deviceinfo_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:AuthReqBody.deviceInfo)
}
void AuthReqBody::set_deviceinfo(const char* value, size_t size) {
  
  deviceinfo_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:AuthReqBody.deviceInfo)
}
::std::string* AuthReqBody::mutable_deviceinfo() {
  
  // @@protoc_insertion_point(field_mutable:AuthReqBody.deviceInfo)
  return deviceinfo_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* AuthReqBody::release_deviceinfo() {
  // @@protoc_insertion_point(field_release:AuthReqBody.deviceInfo)
  
  return deviceinfo_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void AuthReqBody::set_allocated_deviceinfo(::std::string* deviceinfo) {
  if (deviceinfo != NULL) {
    
  } else {
    
  }
  deviceinfo_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), deviceinfo);
  // @@protoc_insertion_point(field_set_allocated:AuthReqBody.deviceInfo)
}

// string sign = 8;
void AuthReqBody::clear_sign() {
  sign_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& AuthReqBody::sign() const {
  // @@protoc_insertion_point(field_get:AuthReqBody.sign)
  return sign_.GetNoArena();
}
void AuthReqBody::set_sign(const ::std::string& value) {
  
  sign_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:AuthReqBody.sign)
}
#if LANG_CXX11
void AuthReqBody::set_sign(::std::string&& value) {
  
  sign_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:AuthReqBody.sign)
}
#endif
void AuthReqBody::set_sign(const char* value) {
  
  sign_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:AuthReqBody.sign)
}
void AuthReqBody::set_sign(const char* value, size_t size) {
  
  sign_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:AuthReqBody.sign)
}
::std::string* AuthReqBody::mutable_sign() {
  
  // @@protoc_insertion_point(field_mutable:AuthReqBody.sign)
  return sign_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* AuthReqBody::release_sign() {
  // @@protoc_insertion_point(field_release:AuthReqBody.sign)
  
  return sign_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void AuthReqBody::set_allocated_sign(::std::string* sign) {
  if (sign != NULL) {
    
  } else {
    
  }
  sign_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), sign);
  // @@protoc_insertion_point(field_set_allocated:AuthReqBody.sign)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

AuthRespBody::AuthRespBody()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:AuthRespBody)
}
AuthRespBody::AuthRespBody(const AuthRespBody& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:AuthRespBody)
}

void AuthRespBody::SharedCtor() {
  _cached_size_ = 0;
}

AuthRespBody::~AuthRespBody() {
  // @@protoc_insertion_point(destructor:AuthRespBody)
  SharedDtor();
}

void AuthRespBody::SharedDtor() {
}

void AuthRespBody::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* AuthRespBody::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[3].descriptor;
}

const AuthRespBody& AuthRespBody::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

AuthRespBody* AuthRespBody::New(::google::protobuf::Arena* arena) const {
  AuthRespBody* n = new AuthRespBody;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void AuthRespBody::Clear() {
// @@protoc_insertion_point(message_clear_start:AuthRespBody)
}

bool AuthRespBody::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:AuthRespBody)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
  handle_unusual:
    if (tag == 0 ||
        ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
        ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
      goto success;
    }
    DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
  }
success:
  // @@protoc_insertion_point(parse_success:AuthRespBody)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:AuthRespBody)
  return false;
#undef DO_
}

void AuthRespBody::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:AuthRespBody)
  // @@protoc_insertion_point(serialize_end:AuthRespBody)
}

::google::protobuf::uint8* AuthRespBody::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:AuthRespBody)
  // @@protoc_insertion_point(serialize_to_array_end:AuthRespBody)
  return target;
}

size_t AuthRespBody::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:AuthRespBody)
  size_t total_size = 0;

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void AuthRespBody::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:AuthRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  const AuthRespBody* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const AuthRespBody>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:AuthRespBody)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:AuthRespBody)
    MergeFrom(*source);
  }
}

void AuthRespBody::MergeFrom(const AuthRespBody& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:AuthRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
}

void AuthRespBody::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:AuthRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AuthRespBody::CopyFrom(const AuthRespBody& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:AuthRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AuthRespBody::IsInitialized() const {
  return true;
}

void AuthRespBody::Swap(AuthRespBody* other) {
  if (other == this) return;
  InternalSwap(other);
}
void AuthRespBody::InternalSwap(AuthRespBody* other) {
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata AuthRespBody::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[3];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// AuthRespBody

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int LoginReqBody::kLoginnameFieldNumber;
const int LoginReqBody::kPasswordFieldNumber;
const int LoginReqBody::kTokenFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

LoginReqBody::LoginReqBody()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:LoginReqBody)
}
LoginReqBody::LoginReqBody(const LoginReqBody& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  loginname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.loginname().size() > 0) {
    loginname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.loginname_);
  }
  password_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.password().size() > 0) {
    password_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.password_);
  }
  token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.token().size() > 0) {
    token_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.token_);
  }
  // @@protoc_insertion_point(copy_constructor:LoginReqBody)
}

void LoginReqBody::SharedCtor() {
  loginname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  password_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _cached_size_ = 0;
}

LoginReqBody::~LoginReqBody() {
  // @@protoc_insertion_point(destructor:LoginReqBody)
  SharedDtor();
}

void LoginReqBody::SharedDtor() {
  loginname_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  password_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  token_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void LoginReqBody::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* LoginReqBody::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[4].descriptor;
}

const LoginReqBody& LoginReqBody::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

LoginReqBody* LoginReqBody::New(::google::protobuf::Arena* arena) const {
  LoginReqBody* n = new LoginReqBody;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void LoginReqBody::Clear() {
// @@protoc_insertion_point(message_clear_start:LoginReqBody)
  loginname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  password_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  token_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

bool LoginReqBody::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:LoginReqBody)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string loginname = 1;
      case 1: {
        if (tag == 10u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_loginname()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->loginname().data(), this->loginname().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "LoginReqBody.loginname"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string password = 2;
      case 2: {
        if (tag == 18u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_password()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->password().data(), this->password().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "LoginReqBody.password"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string token = 3;
      case 3: {
        if (tag == 26u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_token()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->token().data(), this->token().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "LoginReqBody.token"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:LoginReqBody)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:LoginReqBody)
  return false;
#undef DO_
}

void LoginReqBody::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:LoginReqBody)
  // string loginname = 1;
  if (this->loginname().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->loginname().data(), this->loginname().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "LoginReqBody.loginname");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->loginname(), output);
  }

  // string password = 2;
  if (this->password().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->password().data(), this->password().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "LoginReqBody.password");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->password(), output);
  }

  // string token = 3;
  if (this->token().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->token().data(), this->token().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "LoginReqBody.token");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->token(), output);
  }

  // @@protoc_insertion_point(serialize_end:LoginReqBody)
}

::google::protobuf::uint8* LoginReqBody::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:LoginReqBody)
  // string loginname = 1;
  if (this->loginname().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->loginname().data(), this->loginname().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "LoginReqBody.loginname");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->loginname(), target);
  }

  // string password = 2;
  if (this->password().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->password().data(), this->password().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "LoginReqBody.password");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->password(), target);
  }

  // string token = 3;
  if (this->token().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->token().data(), this->token().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "LoginReqBody.token");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->token(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:LoginReqBody)
  return target;
}

size_t LoginReqBody::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:LoginReqBody)
  size_t total_size = 0;

  // string loginname = 1;
  if (this->loginname().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->loginname());
  }

  // string password = 2;
  if (this->password().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->password());
  }

  // string token = 3;
  if (this->token().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->token());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void LoginReqBody::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:LoginReqBody)
  GOOGLE_DCHECK_NE(&from, this);
  const LoginReqBody* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const LoginReqBody>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:LoginReqBody)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:LoginReqBody)
    MergeFrom(*source);
  }
}

void LoginReqBody::MergeFrom(const LoginReqBody& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:LoginReqBody)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.loginname().size() > 0) {

    loginname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.loginname_);
  }
  if (from.password().size() > 0) {

    password_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.password_);
  }
  if (from.token().size() > 0) {

    token_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.token_);
  }
}

void LoginReqBody::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:LoginReqBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void LoginReqBody::CopyFrom(const LoginReqBody& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:LoginReqBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool LoginReqBody::IsInitialized() const {
  return true;
}

void LoginReqBody::Swap(LoginReqBody* other) {
  if (other == this) return;
  InternalSwap(other);
}
void LoginReqBody::InternalSwap(LoginReqBody* other) {
  loginname_.Swap(&other->loginname_);
  password_.Swap(&other->password_);
  token_.Swap(&other->token_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata LoginReqBody::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[4];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// LoginReqBody

// string loginname = 1;
void LoginReqBody::clear_loginname() {
  loginname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& LoginReqBody::loginname() const {
  // @@protoc_insertion_point(field_get:LoginReqBody.loginname)
  return loginname_.GetNoArena();
}
void LoginReqBody::set_loginname(const ::std::string& value) {
  
  loginname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:LoginReqBody.loginname)
}
#if LANG_CXX11
void LoginReqBody::set_loginname(::std::string&& value) {
  
  loginname_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:LoginReqBody.loginname)
}
#endif
void LoginReqBody::set_loginname(const char* value) {
  
  loginname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:LoginReqBody.loginname)
}
void LoginReqBody::set_loginname(const char* value, size_t size) {
  
  loginname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:LoginReqBody.loginname)
}
::std::string* LoginReqBody::mutable_loginname() {
  
  // @@protoc_insertion_point(field_mutable:LoginReqBody.loginname)
  return loginname_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* LoginReqBody::release_loginname() {
  // @@protoc_insertion_point(field_release:LoginReqBody.loginname)
  
  return loginname_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void LoginReqBody::set_allocated_loginname(::std::string* loginname) {
  if (loginname != NULL) {
    
  } else {
    
  }
  loginname_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), loginname);
  // @@protoc_insertion_point(field_set_allocated:LoginReqBody.loginname)
}

// string password = 2;
void LoginReqBody::clear_password() {
  password_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& LoginReqBody::password() const {
  // @@protoc_insertion_point(field_get:LoginReqBody.password)
  return password_.GetNoArena();
}
void LoginReqBody::set_password(const ::std::string& value) {
  
  password_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:LoginReqBody.password)
}
#if LANG_CXX11
void LoginReqBody::set_password(::std::string&& value) {
  
  password_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:LoginReqBody.password)
}
#endif
void LoginReqBody::set_password(const char* value) {
  
  password_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:LoginReqBody.password)
}
void LoginReqBody::set_password(const char* value, size_t size) {
  
  password_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:LoginReqBody.password)
}
::std::string* LoginReqBody::mutable_password() {
  
  // @@protoc_insertion_point(field_mutable:LoginReqBody.password)
  return password_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* LoginReqBody::release_password() {
  // @@protoc_insertion_point(field_release:LoginReqBody.password)
  
  return password_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void LoginReqBody::set_allocated_password(::std::string* password) {
  if (password != NULL) {
    
  } else {
    
  }
  password_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), password);
  // @@protoc_insertion_point(field_set_allocated:LoginReqBody.password)
}

// string token = 3;
void LoginReqBody::clear_token() {
  token_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& LoginReqBody::token() const {
  // @@protoc_insertion_point(field_get:LoginReqBody.token)
  return token_.GetNoArena();
}
void LoginReqBody::set_token(const ::std::string& value) {
  
  token_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:LoginReqBody.token)
}
#if LANG_CXX11
void LoginReqBody::set_token(::std::string&& value) {
  
  token_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:LoginReqBody.token)
}
#endif
void LoginReqBody::set_token(const char* value) {
  
  token_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:LoginReqBody.token)
}
void LoginReqBody::set_token(const char* value, size_t size) {
  
  token_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:LoginReqBody.token)
}
::std::string* LoginReqBody::mutable_token() {
  
  // @@protoc_insertion_point(field_mutable:LoginReqBody.token)
  return token_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* LoginReqBody::release_token() {
  // @@protoc_insertion_point(field_release:LoginReqBody.token)
  
  return token_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void LoginReqBody::set_allocated_token(::std::string* token) {
  if (token != NULL) {
    
  } else {
    
  }
  token_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), token);
  // @@protoc_insertion_point(field_set_allocated:LoginReqBody.token)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int LoginRespBody::kTokenFieldNumber;
const int LoginRespBody::kUserFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

LoginRespBody::LoginRespBody()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:LoginRespBody)
}
LoginRespBody::LoginRespBody(const LoginRespBody& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.token().size() > 0) {
    token_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.token_);
  }
  if (from.has_user()) {
    user_ = new ::User(*from.user_);
  } else {
    user_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:LoginRespBody)
}

void LoginRespBody::SharedCtor() {
  token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  user_ = NULL;
  _cached_size_ = 0;
}

LoginRespBody::~LoginRespBody() {
  // @@protoc_insertion_point(destructor:LoginRespBody)
  SharedDtor();
}

void LoginRespBody::SharedDtor() {
  token_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) {
    delete user_;
  }
}

void LoginRespBody::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* LoginRespBody::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[5].descriptor;
}

const LoginRespBody& LoginRespBody::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

LoginRespBody* LoginRespBody::New(::google::protobuf::Arena* arena) const {
  LoginRespBody* n = new LoginRespBody;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void LoginRespBody::Clear() {
// @@protoc_insertion_point(message_clear_start:LoginRespBody)
  token_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == NULL && user_ != NULL) {
    delete user_;
  }
  user_ = NULL;
}

bool LoginRespBody::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:LoginRespBody)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string token = 1;
      case 1: {
        if (tag == 10u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_token()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->token().data(), this->token().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "LoginRespBody.token"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .User user = 2;
      case 2: {
        if (tag == 18u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_user()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:LoginRespBody)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:LoginRespBody)
  return false;
#undef DO_
}

void LoginRespBody::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:LoginRespBody)
  // string token = 1;
  if (this->token().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->token().data(), this->token().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "LoginRespBody.token");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->token(), output);
  }

  // .User user = 2;
  if (this->has_user()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, *this->user_, output);
  }

  // @@protoc_insertion_point(serialize_end:LoginRespBody)
}

::google::protobuf::uint8* LoginRespBody::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:LoginRespBody)
  // string token = 1;
  if (this->token().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->token().data(), this->token().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "LoginRespBody.token");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->token(), target);
  }

  // .User user = 2;
  if (this->has_user()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        2, *this->user_, false, target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:LoginRespBody)
  return target;
}

size_t LoginRespBody::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:LoginRespBody)
  size_t total_size = 0;

  // string token = 1;
  if (this->token().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->token());
  }

  // .User user = 2;
  if (this->has_user()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->user_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void LoginRespBody::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:LoginRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  const LoginRespBody* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const LoginRespBody>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:LoginRespBody)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:LoginRespBody)
    MergeFrom(*source);
  }
}

void LoginRespBody::MergeFrom(const LoginRespBody& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:LoginRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.token().size() > 0) {

    token_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.token_);
  }
  if (from.has_user()) {
    mutable_user()->::User::MergeFrom(from.user());
  }
}

void LoginRespBody::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:LoginRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void LoginRespBody::CopyFrom(const LoginRespBody& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:LoginRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool LoginRespBody::IsInitialized() const {
  return true;
}

void LoginRespBody::Swap(LoginRespBody* other) {
  if (other == this) return;
  InternalSwap(other);
}
void LoginRespBody::InternalSwap(LoginRespBody* other) {
  token_.Swap(&other->token_);
  std::swap(user_, other->user_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata LoginRespBody::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[5];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// LoginRespBody

// string token = 1;
void LoginRespBody::clear_token() {
  token_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& LoginRespBody::token() const {
  // @@protoc_insertion_point(field_get:LoginRespBody.token)
  return token_.GetNoArena();
}
void LoginRespBody::set_token(const ::std::string& value) {
  
  token_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:LoginRespBody.token)
}
#if LANG_CXX11
void LoginRespBody::set_token(::std::string&& value) {
  
  token_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:LoginRespBody.token)
}
#endif
void LoginRespBody::set_token(const char* value) {
  
  token_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:LoginRespBody.token)
}
void LoginRespBody::set_token(const char* value, size_t size) {
  
  token_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:LoginRespBody.token)
}
::std::string* LoginRespBody::mutable_token() {
  
  // @@protoc_insertion_point(field_mutable:LoginRespBody.token)
  return token_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* LoginRespBody::release_token() {
  // @@protoc_insertion_point(field_release:LoginRespBody.token)
  
  return token_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void LoginRespBody::set_allocated_token(::std::string* token) {
  if (token != NULL) {
    
  } else {
    
  }
  token_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), token);
  // @@protoc_insertion_point(field_set_allocated:LoginRespBody.token)
}

// .User user = 2;
bool LoginRespBody::has_user() const {
  return this != internal_default_instance() && user_ != NULL;
}
void LoginRespBody::clear_user() {
  if (GetArenaNoVirtual() == NULL && user_ != NULL) delete user_;
  user_ = NULL;
}
const ::User& LoginRespBody::user() const {
  // @@protoc_insertion_point(field_get:LoginRespBody.user)
  return user_ != NULL ? *user_
                         : *::User::internal_default_instance();
}
::User* LoginRespBody::mutable_user() {
  
  if (user_ == NULL) {
    user_ = new ::User;
  }
  // @@protoc_insertion_point(field_mutable:LoginRespBody.user)
  return user_;
}
::User* LoginRespBody::release_user() {
  // @@protoc_insertion_point(field_release:LoginRespBody.user)
  
  ::User* temp = user_;
  user_ = NULL;
  return temp;
}
void LoginRespBody::set_allocated_user(::User* user) {
  delete user_;
  user_ = user;
  if (user) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:LoginRespBody.user)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int JoinGroupReqBody::kGroupFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

JoinGroupReqBody::JoinGroupReqBody()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:JoinGroupReqBody)
}
JoinGroupReqBody::JoinGroupReqBody(const JoinGroupReqBody& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.group().size() > 0) {
    group_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.group_);
  }
  // @@protoc_insertion_point(copy_constructor:JoinGroupReqBody)
}

void JoinGroupReqBody::SharedCtor() {
  group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _cached_size_ = 0;
}

JoinGroupReqBody::~JoinGroupReqBody() {
  // @@protoc_insertion_point(destructor:JoinGroupReqBody)
  SharedDtor();
}

void JoinGroupReqBody::SharedDtor() {
  group_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void JoinGroupReqBody::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* JoinGroupReqBody::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[6].descriptor;
}

const JoinGroupReqBody& JoinGroupReqBody::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

JoinGroupReqBody* JoinGroupReqBody::New(::google::protobuf::Arena* arena) const {
  JoinGroupReqBody* n = new JoinGroupReqBody;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void JoinGroupReqBody::Clear() {
// @@protoc_insertion_point(message_clear_start:JoinGroupReqBody)
  group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

bool JoinGroupReqBody::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:JoinGroupReqBody)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string group = 1;
      case 1: {
        if (tag == 10u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_group()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->group().data(), this->group().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "JoinGroupReqBody.group"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:JoinGroupReqBody)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:JoinGroupReqBody)
  return false;
#undef DO_
}

void JoinGroupReqBody::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:JoinGroupReqBody)
  // string group = 1;
  if (this->group().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->group().data(), this->group().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "JoinGroupReqBody.group");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->group(), output);
  }

  // @@protoc_insertion_point(serialize_end:JoinGroupReqBody)
}

::google::protobuf::uint8* JoinGroupReqBody::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:JoinGroupReqBody)
  // string group = 1;
  if (this->group().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->group().data(), this->group().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "JoinGroupReqBody.group");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->group(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:JoinGroupReqBody)
  return target;
}

size_t JoinGroupReqBody::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:JoinGroupReqBody)
  size_t total_size = 0;

  // string group = 1;
  if (this->group().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->group());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void JoinGroupReqBody::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:JoinGroupReqBody)
  GOOGLE_DCHECK_NE(&from, this);
  const JoinGroupReqBody* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const JoinGroupReqBody>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:JoinGroupReqBody)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:JoinGroupReqBody)
    MergeFrom(*source);
  }
}

void JoinGroupReqBody::MergeFrom(const JoinGroupReqBody& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:JoinGroupReqBody)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.group().size() > 0) {

    group_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.group_);
  }
}

void JoinGroupReqBody::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:JoinGroupReqBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void JoinGroupReqBody::CopyFrom(const JoinGroupReqBody& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:JoinGroupReqBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool JoinGroupReqBody::IsInitialized() const {
  return true;
}

void JoinGroupReqBody::Swap(JoinGroupReqBody* other) {
  if (other == this) return;
  InternalSwap(other);
}
void JoinGroupReqBody::InternalSwap(JoinGroupReqBody* other) {
  group_.Swap(&other->group_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata JoinGroupReqBody::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[6];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// JoinGroupReqBody

// string group = 1;
void JoinGroupReqBody::clear_group() {
  group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& JoinGroupReqBody::group() const {
  // @@protoc_insertion_point(field_get:JoinGroupReqBody.group)
  return group_.GetNoArena();
}
void JoinGroupReqBody::set_group(const ::std::string& value) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:JoinGroupReqBody.group)
}
#if LANG_CXX11
void JoinGroupReqBody::set_group(::std::string&& value) {
  
  group_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:JoinGroupReqBody.group)
}
#endif
void JoinGroupReqBody::set_group(const char* value) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:JoinGroupReqBody.group)
}
void JoinGroupReqBody::set_group(const char* value, size_t size) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:JoinGroupReqBody.group)
}
::std::string* JoinGroupReqBody::mutable_group() {
  
  // @@protoc_insertion_point(field_mutable:JoinGroupReqBody.group)
  return group_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* JoinGroupReqBody::release_group() {
  // @@protoc_insertion_point(field_release:JoinGroupReqBody.group)
  
  return group_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void JoinGroupReqBody::set_allocated_group(::std::string* group) {
  if (group != NULL) {
    
  } else {
    
  }
  group_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), group);
  // @@protoc_insertion_point(field_set_allocated:JoinGroupReqBody.group)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int JoinGroupRespBody::kResultFieldNumber;
const int JoinGroupRespBody::kGroupFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

JoinGroupRespBody::JoinGroupRespBody()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:JoinGroupRespBody)
}
JoinGroupRespBody::JoinGroupRespBody(const JoinGroupRespBody& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.group().size() > 0) {
    group_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.group_);
  }
  result_ = from.result_;
  // @@protoc_insertion_point(copy_constructor:JoinGroupRespBody)
}

void JoinGroupRespBody::SharedCtor() {
  group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  result_ = 0;
  _cached_size_ = 0;
}

JoinGroupRespBody::~JoinGroupRespBody() {
  // @@protoc_insertion_point(destructor:JoinGroupRespBody)
  SharedDtor();
}

void JoinGroupRespBody::SharedDtor() {
  group_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void JoinGroupRespBody::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* JoinGroupRespBody::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[7].descriptor;
}

const JoinGroupRespBody& JoinGroupRespBody::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

JoinGroupRespBody* JoinGroupRespBody::New(::google::protobuf::Arena* arena) const {
  JoinGroupRespBody* n = new JoinGroupRespBody;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void JoinGroupRespBody::Clear() {
// @@protoc_insertion_point(message_clear_start:JoinGroupRespBody)
  group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  result_ = 0;
}

bool JoinGroupRespBody::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:JoinGroupRespBody)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .JoinGroupResult result = 1;
      case 1: {
        if (tag == 8u) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_result(static_cast< ::JoinGroupResult >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string group = 2;
      case 2: {
        if (tag == 18u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_group()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->group().data(), this->group().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "JoinGroupRespBody.group"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:JoinGroupRespBody)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:JoinGroupRespBody)
  return false;
#undef DO_
}

void JoinGroupRespBody::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:JoinGroupRespBody)
  // .JoinGroupResult result = 1;
  if (this->result() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      1, this->result(), output);
  }

  // string group = 2;
  if (this->group().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->group().data(), this->group().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "JoinGroupRespBody.group");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->group(), output);
  }

  // @@protoc_insertion_point(serialize_end:JoinGroupRespBody)
}

::google::protobuf::uint8* JoinGroupRespBody::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:JoinGroupRespBody)
  // .JoinGroupResult result = 1;
  if (this->result() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      1, this->result(), target);
  }

  // string group = 2;
  if (this->group().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->group().data(), this->group().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "JoinGroupRespBody.group");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->group(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:JoinGroupRespBody)
  return target;
}

size_t JoinGroupRespBody::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:JoinGroupRespBody)
  size_t total_size = 0;

  // string group = 2;
  if (this->group().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->group());
  }

  // .JoinGroupResult result = 1;
  if (this->result() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->result());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void JoinGroupRespBody::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:JoinGroupRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  const JoinGroupRespBody* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const JoinGroupRespBody>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:JoinGroupRespBody)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:JoinGroupRespBody)
    MergeFrom(*source);
  }
}

void JoinGroupRespBody::MergeFrom(const JoinGroupRespBody& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:JoinGroupRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.group().size() > 0) {

    group_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.group_);
  }
  if (from.result() != 0) {
    set_result(from.result());
  }
}

void JoinGroupRespBody::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:JoinGroupRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void JoinGroupRespBody::CopyFrom(const JoinGroupRespBody& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:JoinGroupRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool JoinGroupRespBody::IsInitialized() const {
  return true;
}

void JoinGroupRespBody::Swap(JoinGroupRespBody* other) {
  if (other == this) return;
  InternalSwap(other);
}
void JoinGroupRespBody::InternalSwap(JoinGroupRespBody* other) {
  group_.Swap(&other->group_);
  std::swap(result_, other->result_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata JoinGroupRespBody::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[7];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// JoinGroupRespBody

// .JoinGroupResult result = 1;
void JoinGroupRespBody::clear_result() {
  result_ = 0;
}
::JoinGroupResult JoinGroupRespBody::result() const {
  // @@protoc_insertion_point(field_get:JoinGroupRespBody.result)
  return static_cast< ::JoinGroupResult >(result_);
}
void JoinGroupRespBody::set_result(::JoinGroupResult value) {
  
  result_ = value;
  // @@protoc_insertion_point(field_set:JoinGroupRespBody.result)
}

// string group = 2;
void JoinGroupRespBody::clear_group() {
  group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& JoinGroupRespBody::group() const {
  // @@protoc_insertion_point(field_get:JoinGroupRespBody.group)
  return group_.GetNoArena();
}
void JoinGroupRespBody::set_group(const ::std::string& value) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:JoinGroupRespBody.group)
}
#if LANG_CXX11
void JoinGroupRespBody::set_group(::std::string&& value) {
  
  group_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:JoinGroupRespBody.group)
}
#endif
void JoinGroupRespBody::set_group(const char* value) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:JoinGroupRespBody.group)
}
void JoinGroupRespBody::set_group(const char* value, size_t size) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:JoinGroupRespBody.group)
}
::std::string* JoinGroupRespBody::mutable_group() {
  
  // @@protoc_insertion_point(field_mutable:JoinGroupRespBody.group)
  return group_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* JoinGroupRespBody::release_group() {
  // @@protoc_insertion_point(field_release:JoinGroupRespBody.group)
  
  return group_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void JoinGroupRespBody::set_allocated_group(::std::string* group) {
  if (group != NULL) {
    
  } else {
    
  }
  group_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), group);
  // @@protoc_insertion_point(field_set_allocated:JoinGroupRespBody.group)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int JoinGroupNotifyRespBody::kClientFieldNumber;
const int JoinGroupNotifyRespBody::kGroupFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

JoinGroupNotifyRespBody::JoinGroupNotifyRespBody()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:JoinGroupNotifyRespBody)
}
JoinGroupNotifyRespBody::JoinGroupNotifyRespBody(const JoinGroupNotifyRespBody& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.group().size() > 0) {
    group_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.group_);
  }
  if (from.has_client()) {
    client_ = new ::Client(*from.client_);
  } else {
    client_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:JoinGroupNotifyRespBody)
}

void JoinGroupNotifyRespBody::SharedCtor() {
  group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  client_ = NULL;
  _cached_size_ = 0;
}

JoinGroupNotifyRespBody::~JoinGroupNotifyRespBody() {
  // @@protoc_insertion_point(destructor:JoinGroupNotifyRespBody)
  SharedDtor();
}

void JoinGroupNotifyRespBody::SharedDtor() {
  group_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) {
    delete client_;
  }
}

void JoinGroupNotifyRespBody::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* JoinGroupNotifyRespBody::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[8].descriptor;
}

const JoinGroupNotifyRespBody& JoinGroupNotifyRespBody::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

JoinGroupNotifyRespBody* JoinGroupNotifyRespBody::New(::google::protobuf::Arena* arena) const {
  JoinGroupNotifyRespBody* n = new JoinGroupNotifyRespBody;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void JoinGroupNotifyRespBody::Clear() {
// @@protoc_insertion_point(message_clear_start:JoinGroupNotifyRespBody)
  group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == NULL && client_ != NULL) {
    delete client_;
  }
  client_ = NULL;
}

bool JoinGroupNotifyRespBody::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:JoinGroupNotifyRespBody)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .Client client = 1;
      case 1: {
        if (tag == 10u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_client()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string group = 2;
      case 2: {
        if (tag == 18u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_group()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->group().data(), this->group().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "JoinGroupNotifyRespBody.group"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:JoinGroupNotifyRespBody)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:JoinGroupNotifyRespBody)
  return false;
#undef DO_
}

void JoinGroupNotifyRespBody::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:JoinGroupNotifyRespBody)
  // .Client client = 1;
  if (this->has_client()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, *this->client_, output);
  }

  // string group = 2;
  if (this->group().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->group().data(), this->group().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "JoinGroupNotifyRespBody.group");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->group(), output);
  }

  // @@protoc_insertion_point(serialize_end:JoinGroupNotifyRespBody)
}

::google::protobuf::uint8* JoinGroupNotifyRespBody::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:JoinGroupNotifyRespBody)
  // .Client client = 1;
  if (this->has_client()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        1, *this->client_, false, target);
  }

  // string group = 2;
  if (this->group().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->group().data(), this->group().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "JoinGroupNotifyRespBody.group");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->group(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:JoinGroupNotifyRespBody)
  return target;
}

size_t JoinGroupNotifyRespBody::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:JoinGroupNotifyRespBody)
  size_t total_size = 0;

  // string group = 2;
  if (this->group().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->group());
  }

  // .Client client = 1;
  if (this->has_client()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->client_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void JoinGroupNotifyRespBody::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:JoinGroupNotifyRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  const JoinGroupNotifyRespBody* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const JoinGroupNotifyRespBody>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:JoinGroupNotifyRespBody)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:JoinGroupNotifyRespBody)
    MergeFrom(*source);
  }
}

void JoinGroupNotifyRespBody::MergeFrom(const JoinGroupNotifyRespBody& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:JoinGroupNotifyRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.group().size() > 0) {

    group_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.group_);
  }
  if (from.has_client()) {
    mutable_client()->::Client::MergeFrom(from.client());
  }
}

void JoinGroupNotifyRespBody::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:JoinGroupNotifyRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void JoinGroupNotifyRespBody::CopyFrom(const JoinGroupNotifyRespBody& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:JoinGroupNotifyRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool JoinGroupNotifyRespBody::IsInitialized() const {
  return true;
}

void JoinGroupNotifyRespBody::Swap(JoinGroupNotifyRespBody* other) {
  if (other == this) return;
  InternalSwap(other);
}
void JoinGroupNotifyRespBody::InternalSwap(JoinGroupNotifyRespBody* other) {
  group_.Swap(&other->group_);
  std::swap(client_, other->client_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata JoinGroupNotifyRespBody::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[8];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// JoinGroupNotifyRespBody

// .Client client = 1;
bool JoinGroupNotifyRespBody::has_client() const {
  return this != internal_default_instance() && client_ != NULL;
}
void JoinGroupNotifyRespBody::clear_client() {
  if (GetArenaNoVirtual() == NULL && client_ != NULL) delete client_;
  client_ = NULL;
}
const ::Client& JoinGroupNotifyRespBody::client() const {
  // @@protoc_insertion_point(field_get:JoinGroupNotifyRespBody.client)
  return client_ != NULL ? *client_
                         : *::Client::internal_default_instance();
}
::Client* JoinGroupNotifyRespBody::mutable_client() {
  
  if (client_ == NULL) {
    client_ = new ::Client;
  }
  // @@protoc_insertion_point(field_mutable:JoinGroupNotifyRespBody.client)
  return client_;
}
::Client* JoinGroupNotifyRespBody::release_client() {
  // @@protoc_insertion_point(field_release:JoinGroupNotifyRespBody.client)
  
  ::Client* temp = client_;
  client_ = NULL;
  return temp;
}
void JoinGroupNotifyRespBody::set_allocated_client(::Client* client) {
  delete client_;
  client_ = client;
  if (client) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:JoinGroupNotifyRespBody.client)
}

// string group = 2;
void JoinGroupNotifyRespBody::clear_group() {
  group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& JoinGroupNotifyRespBody::group() const {
  // @@protoc_insertion_point(field_get:JoinGroupNotifyRespBody.group)
  return group_.GetNoArena();
}
void JoinGroupNotifyRespBody::set_group(const ::std::string& value) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:JoinGroupNotifyRespBody.group)
}
#if LANG_CXX11
void JoinGroupNotifyRespBody::set_group(::std::string&& value) {
  
  group_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:JoinGroupNotifyRespBody.group)
}
#endif
void JoinGroupNotifyRespBody::set_group(const char* value) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:JoinGroupNotifyRespBody.group)
}
void JoinGroupNotifyRespBody::set_group(const char* value, size_t size) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:JoinGroupNotifyRespBody.group)
}
::std::string* JoinGroupNotifyRespBody::mutable_group() {
  
  // @@protoc_insertion_point(field_mutable:JoinGroupNotifyRespBody.group)
  return group_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* JoinGroupNotifyRespBody::release_group() {
  // @@protoc_insertion_point(field_release:JoinGroupNotifyRespBody.group)
  
  return group_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void JoinGroupNotifyRespBody::set_allocated_group(::std::string* group) {
  if (group != NULL) {
    
  } else {
    
  }
  group_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), group);
  // @@protoc_insertion_point(field_set_allocated:JoinGroupNotifyRespBody.group)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ExitGroupNotifyRespBody::kClientFieldNumber;
const int ExitGroupNotifyRespBody::kGroupFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ExitGroupNotifyRespBody::ExitGroupNotifyRespBody()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:ExitGroupNotifyRespBody)
}
ExitGroupNotifyRespBody::ExitGroupNotifyRespBody(const ExitGroupNotifyRespBody& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.group().size() > 0) {
    group_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.group_);
  }
  if (from.has_client()) {
    client_ = new ::Client(*from.client_);
  } else {
    client_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:ExitGroupNotifyRespBody)
}

void ExitGroupNotifyRespBody::SharedCtor() {
  group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  client_ = NULL;
  _cached_size_ = 0;
}

ExitGroupNotifyRespBody::~ExitGroupNotifyRespBody() {
  // @@protoc_insertion_point(destructor:ExitGroupNotifyRespBody)
  SharedDtor();
}

void ExitGroupNotifyRespBody::SharedDtor() {
  group_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) {
    delete client_;
  }
}

void ExitGroupNotifyRespBody::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ExitGroupNotifyRespBody::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[9].descriptor;
}

const ExitGroupNotifyRespBody& ExitGroupNotifyRespBody::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

ExitGroupNotifyRespBody* ExitGroupNotifyRespBody::New(::google::protobuf::Arena* arena) const {
  ExitGroupNotifyRespBody* n = new ExitGroupNotifyRespBody;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ExitGroupNotifyRespBody::Clear() {
// @@protoc_insertion_point(message_clear_start:ExitGroupNotifyRespBody)
  group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == NULL && client_ != NULL) {
    delete client_;
  }
  client_ = NULL;
}

bool ExitGroupNotifyRespBody::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:ExitGroupNotifyRespBody)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .Client client = 1;
      case 1: {
        if (tag == 10u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_client()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string group = 2;
      case 2: {
        if (tag == 18u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_group()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->group().data(), this->group().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "ExitGroupNotifyRespBody.group"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:ExitGroupNotifyRespBody)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:ExitGroupNotifyRespBody)
  return false;
#undef DO_
}

void ExitGroupNotifyRespBody::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:ExitGroupNotifyRespBody)
  // .Client client = 1;
  if (this->has_client()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, *this->client_, output);
  }

  // string group = 2;
  if (this->group().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->group().data(), this->group().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ExitGroupNotifyRespBody.group");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->group(), output);
  }

  // @@protoc_insertion_point(serialize_end:ExitGroupNotifyRespBody)
}

::google::protobuf::uint8* ExitGroupNotifyRespBody::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:ExitGroupNotifyRespBody)
  // .Client client = 1;
  if (this->has_client()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        1, *this->client_, false, target);
  }

  // string group = 2;
  if (this->group().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->group().data(), this->group().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ExitGroupNotifyRespBody.group");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->group(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:ExitGroupNotifyRespBody)
  return target;
}

size_t ExitGroupNotifyRespBody::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:ExitGroupNotifyRespBody)
  size_t total_size = 0;

  // string group = 2;
  if (this->group().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->group());
  }

  // .Client client = 1;
  if (this->has_client()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->client_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ExitGroupNotifyRespBody::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:ExitGroupNotifyRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  const ExitGroupNotifyRespBody* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ExitGroupNotifyRespBody>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ExitGroupNotifyRespBody)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:ExitGroupNotifyRespBody)
    MergeFrom(*source);
  }
}

void ExitGroupNotifyRespBody::MergeFrom(const ExitGroupNotifyRespBody& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:ExitGroupNotifyRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.group().size() > 0) {

    group_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.group_);
  }
  if (from.has_client()) {
    mutable_client()->::Client::MergeFrom(from.client());
  }
}

void ExitGroupNotifyRespBody::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:ExitGroupNotifyRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ExitGroupNotifyRespBody::CopyFrom(const ExitGroupNotifyRespBody& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:ExitGroupNotifyRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExitGroupNotifyRespBody::IsInitialized() const {
  return true;
}

void ExitGroupNotifyRespBody::Swap(ExitGroupNotifyRespBody* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ExitGroupNotifyRespBody::InternalSwap(ExitGroupNotifyRespBody* other) {
  group_.Swap(&other->group_);
  std::swap(client_, other->client_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ExitGroupNotifyRespBody::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[9];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ExitGroupNotifyRespBody

// .Client client = 1;
bool ExitGroupNotifyRespBody::has_client() const {
  return this != internal_default_instance() && client_ != NULL;
}
void ExitGroupNotifyRespBody::clear_client() {
  if (GetArenaNoVirtual() == NULL && client_ != NULL) delete client_;
  client_ = NULL;
}
const ::Client& ExitGroupNotifyRespBody::client() const {
  // @@protoc_insertion_point(field_get:ExitGroupNotifyRespBody.client)
  return client_ != NULL ? *client_
                         : *::Client::internal_default_instance();
}
::Client* ExitGroupNotifyRespBody::mutable_client() {
  
  if (client_ == NULL) {
    client_ = new ::Client;
  }
  // @@protoc_insertion_point(field_mutable:ExitGroupNotifyRespBody.client)
  return client_;
}
::Client* ExitGroupNotifyRespBody::release_client() {
  // @@protoc_insertion_point(field_release:ExitGroupNotifyRespBody.client)
  
  ::Client* temp = client_;
  client_ = NULL;
  return temp;
}
void ExitGroupNotifyRespBody::set_allocated_client(::Client* client) {
  delete client_;
  client_ = client;
  if (client) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:ExitGroupNotifyRespBody.client)
}

// string group = 2;
void ExitGroupNotifyRespBody::clear_group() {
  group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& ExitGroupNotifyRespBody::group() const {
  // @@protoc_insertion_point(field_get:ExitGroupNotifyRespBody.group)
  return group_.GetNoArena();
}
void ExitGroupNotifyRespBody::set_group(const ::std::string& value) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:ExitGroupNotifyRespBody.group)
}
#if LANG_CXX11
void ExitGroupNotifyRespBody::set_group(::std::string&& value) {
  
  group_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:ExitGroupNotifyRespBody.group)
}
#endif
void ExitGroupNotifyRespBody::set_group(const char* value) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:ExitGroupNotifyRespBody.group)
}
void ExitGroupNotifyRespBody::set_group(const char* value, size_t size) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:ExitGroupNotifyRespBody.group)
}
::std::string* ExitGroupNotifyRespBody::mutable_group() {
  
  // @@protoc_insertion_point(field_mutable:ExitGroupNotifyRespBody.group)
  return group_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ExitGroupNotifyRespBody::release_group() {
  // @@protoc_insertion_point(field_release:ExitGroupNotifyRespBody.group)
  
  return group_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ExitGroupNotifyRespBody::set_allocated_group(::std::string* group) {
  if (group != NULL) {
    
  } else {
    
  }
  group_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), group);
  // @@protoc_insertion_point(field_set_allocated:ExitGroupNotifyRespBody.group)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ChatReqBody::kTimeFieldNumber;
const int ChatReqBody::kTypeFieldNumber;
const int ChatReqBody::kTextFieldNumber;
const int ChatReqBody::kGroupFieldNumber;
const int ChatReqBody::kToIdFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ChatReqBody::ChatReqBody()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:ChatReqBody)
}
ChatReqBody::ChatReqBody(const ChatReqBody& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  text_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.text().size() > 0) {
    text_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.text_);
  }
  group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.group().size() > 0) {
    group_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.group_);
  }
  toid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.toid().size() > 0) {
    toid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.toid_);
  }
  ::memcpy(&time_, &from.time_,
    reinterpret_cast<char*>(&type_) -
    reinterpret_cast<char*>(&time_) + sizeof(type_));
  // @@protoc_insertion_point(copy_constructor:ChatReqBody)
}

void ChatReqBody::SharedCtor() {
  text_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  toid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&time_, 0, reinterpret_cast<char*>(&type_) -
    reinterpret_cast<char*>(&time_) + sizeof(type_));
  _cached_size_ = 0;
}

ChatReqBody::~ChatReqBody() {
  // @@protoc_insertion_point(destructor:ChatReqBody)
  SharedDtor();
}

void ChatReqBody::SharedDtor() {
  text_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  group_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  toid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ChatReqBody::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ChatReqBody::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[10].descriptor;
}

const ChatReqBody& ChatReqBody::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

ChatReqBody* ChatReqBody::New(::google::protobuf::Arena* arena) const {
  ChatReqBody* n = new ChatReqBody;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ChatReqBody::Clear() {
// @@protoc_insertion_point(message_clear_start:ChatReqBody)
  text_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  toid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&time_, 0, reinterpret_cast<char*>(&type_) -
    reinterpret_cast<char*>(&time_) + sizeof(type_));
}

bool ChatReqBody::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:ChatReqBody)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // int64 time = 1;
      case 1: {
        if (tag == 8u) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &time_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ChatType type = 2;
      case 2: {
        if (tag == 16u) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_type(static_cast< ::ChatType >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string text = 3;
      case 3: {
        if (tag == 26u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_text()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->text().data(), this->text().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "ChatReqBody.text"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string group = 4;
      case 4: {
        if (tag == 34u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_group()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->group().data(), this->group().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "ChatReqBody.group"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string toId = 5;
      case 5: {
        if (tag == 42u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_toid()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->toid().data(), this->toid().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "ChatReqBody.toId"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:ChatReqBody)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:ChatReqBody)
  return false;
#undef DO_
}

void ChatReqBody::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:ChatReqBody)
  // int64 time = 1;
  if (this->time() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->time(), output);
  }

  // .ChatType type = 2;
  if (this->type() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      2, this->type(), output);
  }

  // string text = 3;
  if (this->text().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->text().data(), this->text().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ChatReqBody.text");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->text(), output);
  }

  // string group = 4;
  if (this->group().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->group().data(), this->group().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ChatReqBody.group");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->group(), output);
  }

  // string toId = 5;
  if (this->toid().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->toid().data(), this->toid().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ChatReqBody.toId");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->toid(), output);
  }

  // @@protoc_insertion_point(serialize_end:ChatReqBody)
}

::google::protobuf::uint8* ChatReqBody::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:ChatReqBody)
  // int64 time = 1;
  if (this->time() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->time(), target);
  }

  // .ChatType type = 2;
  if (this->type() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      2, this->type(), target);
  }

  // string text = 3;
  if (this->text().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->text().data(), this->text().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ChatReqBody.text");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->text(), target);
  }

  // string group = 4;
  if (this->group().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->group().data(), this->group().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ChatReqBody.group");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->group(), target);
  }

  // string toId = 5;
  if (this->toid().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->toid().data(), this->toid().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ChatReqBody.toId");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->toid(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:ChatReqBody)
  return target;
}

size_t ChatReqBody::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:ChatReqBody)
  size_t total_size = 0;

  // string text = 3;
  if (this->text().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->text());
  }

  // string group = 4;
  if (this->group().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->group());
  }

  // string toId = 5;
  if (this->toid().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->toid());
  }

  // int64 time = 1;
  if (this->time() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->time());
  }

  // .ChatType type = 2;
  if (this->type() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->type());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ChatReqBody::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:ChatReqBody)
  GOOGLE_DCHECK_NE(&from, this);
  const ChatReqBody* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ChatReqBody>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ChatReqBody)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:ChatReqBody)
    MergeFrom(*source);
  }
}

void ChatReqBody::MergeFrom(const ChatReqBody& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:ChatReqBody)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.text().size() > 0) {

    text_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.text_);
  }
  if (from.group().size() > 0) {

    group_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.group_);
  }
  if (from.toid().size() > 0) {

    toid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.toid_);
  }
  if (from.time() != 0) {
    set_time(from.time());
  }
  if (from.type() != 0) {
    set_type(from.type());
  }
}

void ChatReqBody::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:ChatReqBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ChatReqBody::CopyFrom(const ChatReqBody& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:ChatReqBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ChatReqBody::IsInitialized() const {
  return true;
}

void ChatReqBody::Swap(ChatReqBody* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ChatReqBody::InternalSwap(ChatReqBody* other) {
  text_.Swap(&other->text_);
  group_.Swap(&other->group_);
  toid_.Swap(&other->toid_);
  std::swap(time_, other->time_);
  std::swap(type_, other->type_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ChatReqBody::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[10];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ChatReqBody

// int64 time = 1;
void ChatReqBody::clear_time() {
  time_ = GOOGLE_LONGLONG(0);
}
::google::protobuf::int64 ChatReqBody::time() const {
  // @@protoc_insertion_point(field_get:ChatReqBody.time)
  return time_;
}
void ChatReqBody::set_time(::google::protobuf::int64 value) {
  
  time_ = value;
  // @@protoc_insertion_point(field_set:ChatReqBody.time)
}

// .ChatType type = 2;
void ChatReqBody::clear_type() {
  type_ = 0;
}
::ChatType ChatReqBody::type() const {
  // @@protoc_insertion_point(field_get:ChatReqBody.type)
  return static_cast< ::ChatType >(type_);
}
void ChatReqBody::set_type(::ChatType value) {
  
  type_ = value;
  // @@protoc_insertion_point(field_set:ChatReqBody.type)
}

// string text = 3;
void ChatReqBody::clear_text() {
  text_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& ChatReqBody::text() const {
  // @@protoc_insertion_point(field_get:ChatReqBody.text)
  return text_.GetNoArena();
}
void ChatReqBody::set_text(const ::std::string& value) {
  
  text_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:ChatReqBody.text)
}
#if LANG_CXX11
void ChatReqBody::set_text(::std::string&& value) {
  
  text_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:ChatReqBody.text)
}
#endif
void ChatReqBody::set_text(const char* value) {
  
  text_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:ChatReqBody.text)
}
void ChatReqBody::set_text(const char* value, size_t size) {
  
  text_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:ChatReqBody.text)
}
::std::string* ChatReqBody::mutable_text() {
  
  // @@protoc_insertion_point(field_mutable:ChatReqBody.text)
  return text_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ChatReqBody::release_text() {
  // @@protoc_insertion_point(field_release:ChatReqBody.text)
  
  return text_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ChatReqBody::set_allocated_text(::std::string* text) {
  if (text != NULL) {
    
  } else {
    
  }
  text_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), text);
  // @@protoc_insertion_point(field_set_allocated:ChatReqBody.text)
}

// string group = 4;
void ChatReqBody::clear_group() {
  group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& ChatReqBody::group() const {
  // @@protoc_insertion_point(field_get:ChatReqBody.group)
  return group_.GetNoArena();
}
void ChatReqBody::set_group(const ::std::string& value) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:ChatReqBody.group)
}
#if LANG_CXX11
void ChatReqBody::set_group(::std::string&& value) {
  
  group_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:ChatReqBody.group)
}
#endif
void ChatReqBody::set_group(const char* value) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:ChatReqBody.group)
}
void ChatReqBody::set_group(const char* value, size_t size) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:ChatReqBody.group)
}
::std::string* ChatReqBody::mutable_group() {
  
  // @@protoc_insertion_point(field_mutable:ChatReqBody.group)
  return group_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ChatReqBody::release_group() {
  // @@protoc_insertion_point(field_release:ChatReqBody.group)
  
  return group_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ChatReqBody::set_allocated_group(::std::string* group) {
  if (group != NULL) {
    
  } else {
    
  }
  group_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), group);
  // @@protoc_insertion_point(field_set_allocated:ChatReqBody.group)
}

// string toId = 5;
void ChatReqBody::clear_toid() {
  toid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& ChatReqBody::toid() const {
  // @@protoc_insertion_point(field_get:ChatReqBody.toId)
  return toid_.GetNoArena();
}
void ChatReqBody::set_toid(const ::std::string& value) {
  
  toid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:ChatReqBody.toId)
}
#if LANG_CXX11
void ChatReqBody::set_toid(::std::string&& value) {
  
  toid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:ChatReqBody.toId)
}
#endif
void ChatReqBody::set_toid(const char* value) {
  
  toid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:ChatReqBody.toId)
}
void ChatReqBody::set_toid(const char* value, size_t size) {
  
  toid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:ChatReqBody.toId)
}
::std::string* ChatReqBody::mutable_toid() {
  
  // @@protoc_insertion_point(field_mutable:ChatReqBody.toId)
  return toid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ChatReqBody::release_toid() {
  // @@protoc_insertion_point(field_release:ChatReqBody.toId)
  
  return toid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ChatReqBody::set_allocated_toid(::std::string* toid) {
  if (toid != NULL) {
    
  } else {
    
  }
  toid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), toid);
  // @@protoc_insertion_point(field_set_allocated:ChatReqBody.toId)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ChatRespBody::kTimeFieldNumber;
const int ChatRespBody::kTypeFieldNumber;
const int ChatRespBody::kTextFieldNumber;
const int ChatRespBody::kFromClientFieldNumber;
const int ChatRespBody::kToClientFieldNumber;
const int ChatRespBody::kGroupFieldNumber;
const int ChatRespBody::kIdFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ChatRespBody::ChatRespBody()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:ChatRespBody)
}
ChatRespBody::ChatRespBody(const ChatRespBody& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  text_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.text().size() > 0) {
    text_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.text_);
  }
  group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.group().size() > 0) {
    group_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.group_);
  }
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.has_fromclient()) {
    fromclient_ = new ::Client(*from.fromclient_);
  } else {
    fromclient_ = NULL;
  }
  if (from.has_toclient()) {
    toclient_ = new ::Client(*from.toclient_);
  } else {
    toclient_ = NULL;
  }
  ::memcpy(&time_, &from.time_,
    reinterpret_cast<char*>(&type_) -
    reinterpret_cast<char*>(&time_) + sizeof(type_));
  // @@protoc_insertion_point(copy_constructor:ChatRespBody)
}

void ChatRespBody::SharedCtor() {
  text_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&fromclient_, 0, reinterpret_cast<char*>(&type_) -
    reinterpret_cast<char*>(&fromclient_) + sizeof(type_));
  _cached_size_ = 0;
}

ChatRespBody::~ChatRespBody() {
  // @@protoc_insertion_point(destructor:ChatRespBody)
  SharedDtor();
}

void ChatRespBody::SharedDtor() {
  text_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  group_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) {
    delete fromclient_;
  }
  if (this != internal_default_instance()) {
    delete toclient_;
  }
}

void ChatRespBody::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ChatRespBody::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[11].descriptor;
}

const ChatRespBody& ChatRespBody::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

ChatRespBody* ChatRespBody::New(::google::protobuf::Arena* arena) const {
  ChatRespBody* n = new ChatRespBody;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ChatRespBody::Clear() {
// @@protoc_insertion_point(message_clear_start:ChatRespBody)
  text_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == NULL && fromclient_ != NULL) {
    delete fromclient_;
  }
  fromclient_ = NULL;
  if (GetArenaNoVirtual() == NULL && toclient_ != NULL) {
    delete toclient_;
  }
  toclient_ = NULL;
  ::memset(&time_, 0, reinterpret_cast<char*>(&type_) -
    reinterpret_cast<char*>(&time_) + sizeof(type_));
}

bool ChatRespBody::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:ChatRespBody)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // int64 time = 1;
      case 1: {
        if (tag == 8u) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &time_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .ChatType type = 2;
      case 2: {
        if (tag == 16u) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_type(static_cast< ::ChatType >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string text = 3;
      case 3: {
        if (tag == 26u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_text()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->text().data(), this->text().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "ChatRespBody.text"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .Client fromClient = 4;
      case 4: {
        if (tag == 34u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_fromclient()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .Client toClient = 5;
      case 5: {
        if (tag == 42u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_toclient()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string group = 6;
      case 6: {
        if (tag == 50u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_group()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->group().data(), this->group().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "ChatRespBody.group"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string id = 7;
      case 7: {
        if (tag == 58u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), this->id().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "ChatRespBody.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:ChatRespBody)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:ChatRespBody)
  return false;
#undef DO_
}

void ChatRespBody::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:ChatRespBody)
  // int64 time = 1;
  if (this->time() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->time(), output);
  }

  // .ChatType type = 2;
  if (this->type() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      2, this->type(), output);
  }

  // string text = 3;
  if (this->text().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->text().data(), this->text().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ChatRespBody.text");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->text(), output);
  }

  // .Client fromClient = 4;
  if (this->has_fromclient()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, *this->fromclient_, output);
  }

  // .Client toClient = 5;
  if (this->has_toclient()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      5, *this->toclient_, output);
  }

  // string group = 6;
  if (this->group().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->group().data(), this->group().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ChatRespBody.group");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->group(), output);
  }

  // string id = 7;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), this->id().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ChatRespBody.id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      7, this->id(), output);
  }

  // @@protoc_insertion_point(serialize_end:ChatRespBody)
}

::google::protobuf::uint8* ChatRespBody::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:ChatRespBody)
  // int64 time = 1;
  if (this->time() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->time(), target);
  }

  // .ChatType type = 2;
  if (this->type() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      2, this->type(), target);
  }

  // string text = 3;
  if (this->text().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->text().data(), this->text().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ChatRespBody.text");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->text(), target);
  }

  // .Client fromClient = 4;
  if (this->has_fromclient()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        4, *this->fromclient_, false, target);
  }

  // .Client toClient = 5;
  if (this->has_toclient()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        5, *this->toclient_, false, target);
  }

  // string group = 6;
  if (this->group().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->group().data(), this->group().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ChatRespBody.group");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->group(), target);
  }

  // string id = 7;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), this->id().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ChatRespBody.id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        7, this->id(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:ChatRespBody)
  return target;
}

size_t ChatRespBody::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:ChatRespBody)
  size_t total_size = 0;

  // string text = 3;
  if (this->text().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->text());
  }

  // string group = 6;
  if (this->group().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->group());
  }

  // string id = 7;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->id());
  }

  // .Client fromClient = 4;
  if (this->has_fromclient()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->fromclient_);
  }

  // .Client toClient = 5;
  if (this->has_toclient()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->toclient_);
  }

  // int64 time = 1;
  if (this->time() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->time());
  }

  // .ChatType type = 2;
  if (this->type() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->type());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ChatRespBody::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:ChatRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  const ChatRespBody* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ChatRespBody>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ChatRespBody)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:ChatRespBody)
    MergeFrom(*source);
  }
}

void ChatRespBody::MergeFrom(const ChatRespBody& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:ChatRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.text().size() > 0) {

    text_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.text_);
  }
  if (from.group().size() > 0) {

    group_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.group_);
  }
  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.has_fromclient()) {
    mutable_fromclient()->::Client::MergeFrom(from.fromclient());
  }
  if (from.has_toclient()) {
    mutable_toclient()->::Client::MergeFrom(from.toclient());
  }
  if (from.time() != 0) {
    set_time(from.time());
  }
  if (from.type() != 0) {
    set_type(from.type());
  }
}

void ChatRespBody::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:ChatRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ChatRespBody::CopyFrom(const ChatRespBody& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:ChatRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ChatRespBody::IsInitialized() const {
  return true;
}

void ChatRespBody::Swap(ChatRespBody* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ChatRespBody::InternalSwap(ChatRespBody* other) {
  text_.Swap(&other->text_);
  group_.Swap(&other->group_);
  id_.Swap(&other->id_);
  std::swap(fromclient_, other->fromclient_);
  std::swap(toclient_, other->toclient_);
  std::swap(time_, other->time_);
  std::swap(type_, other->type_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ChatRespBody::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[11];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ChatRespBody

// int64 time = 1;
void ChatRespBody::clear_time() {
  time_ = GOOGLE_LONGLONG(0);
}
::google::protobuf::int64 ChatRespBody::time() const {
  // @@protoc_insertion_point(field_get:ChatRespBody.time)
  return time_;
}
void ChatRespBody::set_time(::google::protobuf::int64 value) {
  
  time_ = value;
  // @@protoc_insertion_point(field_set:ChatRespBody.time)
}

// .ChatType type = 2;
void ChatRespBody::clear_type() {
  type_ = 0;
}
::ChatType ChatRespBody::type() const {
  // @@protoc_insertion_point(field_get:ChatRespBody.type)
  return static_cast< ::ChatType >(type_);
}
void ChatRespBody::set_type(::ChatType value) {
  
  type_ = value;
  // @@protoc_insertion_point(field_set:ChatRespBody.type)
}

// string text = 3;
void ChatRespBody::clear_text() {
  text_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& ChatRespBody::text() const {
  // @@protoc_insertion_point(field_get:ChatRespBody.text)
  return text_.GetNoArena();
}
void ChatRespBody::set_text(const ::std::string& value) {
  
  text_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:ChatRespBody.text)
}
#if LANG_CXX11
void ChatRespBody::set_text(::std::string&& value) {
  
  text_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:ChatRespBody.text)
}
#endif
void ChatRespBody::set_text(const char* value) {
  
  text_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:ChatRespBody.text)
}
void ChatRespBody::set_text(const char* value, size_t size) {
  
  text_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:ChatRespBody.text)
}
::std::string* ChatRespBody::mutable_text() {
  
  // @@protoc_insertion_point(field_mutable:ChatRespBody.text)
  return text_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ChatRespBody::release_text() {
  // @@protoc_insertion_point(field_release:ChatRespBody.text)
  
  return text_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ChatRespBody::set_allocated_text(::std::string* text) {
  if (text != NULL) {
    
  } else {
    
  }
  text_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), text);
  // @@protoc_insertion_point(field_set_allocated:ChatRespBody.text)
}

// .Client fromClient = 4;
bool ChatRespBody::has_fromclient() const {
  return this != internal_default_instance() && fromclient_ != NULL;
}
void ChatRespBody::clear_fromclient() {
  if (GetArenaNoVirtual() == NULL && fromclient_ != NULL) delete fromclient_;
  fromclient_ = NULL;
}
const ::Client& ChatRespBody::fromclient() const {
  // @@protoc_insertion_point(field_get:ChatRespBody.fromClient)
  return fromclient_ != NULL ? *fromclient_
                         : *::Client::internal_default_instance();
}
::Client* ChatRespBody::mutable_fromclient() {
  
  if (fromclient_ == NULL) {
    fromclient_ = new ::Client;
  }
  // @@protoc_insertion_point(field_mutable:ChatRespBody.fromClient)
  return fromclient_;
}
::Client* ChatRespBody::release_fromclient() {
  // @@protoc_insertion_point(field_release:ChatRespBody.fromClient)
  
  ::Client* temp = fromclient_;
  fromclient_ = NULL;
  return temp;
}
void ChatRespBody::set_allocated_fromclient(::Client* fromclient) {
  delete fromclient_;
  fromclient_ = fromclient;
  if (fromclient) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:ChatRespBody.fromClient)
}

// .Client toClient = 5;
bool ChatRespBody::has_toclient() const {
  return this != internal_default_instance() && toclient_ != NULL;
}
void ChatRespBody::clear_toclient() {
  if (GetArenaNoVirtual() == NULL && toclient_ != NULL) delete toclient_;
  toclient_ = NULL;
}
const ::Client& ChatRespBody::toclient() const {
  // @@protoc_insertion_point(field_get:ChatRespBody.toClient)
  return toclient_ != NULL ? *toclient_
                         : *::Client::internal_default_instance();
}
::Client* ChatRespBody::mutable_toclient() {
  
  if (toclient_ == NULL) {
    toclient_ = new ::Client;
  }
  // @@protoc_insertion_point(field_mutable:ChatRespBody.toClient)
  return toclient_;
}
::Client* ChatRespBody::release_toclient() {
  // @@protoc_insertion_point(field_release:ChatRespBody.toClient)
  
  ::Client* temp = toclient_;
  toclient_ = NULL;
  return temp;
}
void ChatRespBody::set_allocated_toclient(::Client* toclient) {
  delete toclient_;
  toclient_ = toclient;
  if (toclient) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:ChatRespBody.toClient)
}

// string group = 6;
void ChatRespBody::clear_group() {
  group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& ChatRespBody::group() const {
  // @@protoc_insertion_point(field_get:ChatRespBody.group)
  return group_.GetNoArena();
}
void ChatRespBody::set_group(const ::std::string& value) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:ChatRespBody.group)
}
#if LANG_CXX11
void ChatRespBody::set_group(::std::string&& value) {
  
  group_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:ChatRespBody.group)
}
#endif
void ChatRespBody::set_group(const char* value) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:ChatRespBody.group)
}
void ChatRespBody::set_group(const char* value, size_t size) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:ChatRespBody.group)
}
::std::string* ChatRespBody::mutable_group() {
  
  // @@protoc_insertion_point(field_mutable:ChatRespBody.group)
  return group_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ChatRespBody::release_group() {
  // @@protoc_insertion_point(field_release:ChatRespBody.group)
  
  return group_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ChatRespBody::set_allocated_group(::std::string* group) {
  if (group != NULL) {
    
  } else {
    
  }
  group_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), group);
  // @@protoc_insertion_point(field_set_allocated:ChatRespBody.group)
}

// string id = 7;
void ChatRespBody::clear_id() {
  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& ChatRespBody::id() const {
  // @@protoc_insertion_point(field_get:ChatRespBody.id)
  return id_.GetNoArena();
}
void ChatRespBody::set_id(const ::std::string& value) {
  
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:ChatRespBody.id)
}
#if LANG_CXX11
void ChatRespBody::set_id(::std::string&& value) {
  
  id_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:ChatRespBody.id)
}
#endif
void ChatRespBody::set_id(const char* value) {
  
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:ChatRespBody.id)
}
void ChatRespBody::set_id(const char* value, size_t size) {
  
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:ChatRespBody.id)
}
::std::string* ChatRespBody::mutable_id() {
  
  // @@protoc_insertion_point(field_mutable:ChatRespBody.id)
  return id_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ChatRespBody::release_id() {
  // @@protoc_insertion_point(field_release:ChatRespBody.id)
  
  return id_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ChatRespBody::set_allocated_id(::std::string* id) {
  if (id != NULL) {
    
  } else {
    
  }
  id_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), id);
  // @@protoc_insertion_point(field_set_allocated:ChatRespBody.id)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ClientPageReqBody::kPageIndexFieldNumber;
const int ClientPageReqBody::kPageSizeFieldNumber;
const int ClientPageReqBody::kGroupFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ClientPageReqBody::ClientPageReqBody()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:ClientPageReqBody)
}
ClientPageReqBody::ClientPageReqBody(const ClientPageReqBody& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.group().size() > 0) {
    group_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.group_);
  }
  ::memcpy(&pageindex_, &from.pageindex_,
    reinterpret_cast<char*>(&pagesize_) -
    reinterpret_cast<char*>(&pageindex_) + sizeof(pagesize_));
  // @@protoc_insertion_point(copy_constructor:ClientPageReqBody)
}

void ClientPageReqBody::SharedCtor() {
  group_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&pageindex_, 0, reinterpret_cast<char*>(&pagesize_) -
    reinterpret_cast<char*>(&pageindex_) + sizeof(pagesize_));
  _cached_size_ = 0;
}

ClientPageReqBody::~ClientPageReqBody() {
  // @@protoc_insertion_point(destructor:ClientPageReqBody)
  SharedDtor();
}

void ClientPageReqBody::SharedDtor() {
  group_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ClientPageReqBody::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ClientPageReqBody::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[12].descriptor;
}

const ClientPageReqBody& ClientPageReqBody::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

ClientPageReqBody* ClientPageReqBody::New(::google::protobuf::Arena* arena) const {
  ClientPageReqBody* n = new ClientPageReqBody;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ClientPageReqBody::Clear() {
// @@protoc_insertion_point(message_clear_start:ClientPageReqBody)
  group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&pageindex_, 0, reinterpret_cast<char*>(&pagesize_) -
    reinterpret_cast<char*>(&pageindex_) + sizeof(pagesize_));
}

bool ClientPageReqBody::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:ClientPageReqBody)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // int32 pageIndex = 1;
      case 1: {
        if (tag == 8u) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &pageindex_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 pageSize = 2;
      case 2: {
        if (tag == 16u) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &pagesize_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string group = 3;
      case 3: {
        if (tag == 26u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_group()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->group().data(), this->group().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "ClientPageReqBody.group"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:ClientPageReqBody)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:ClientPageReqBody)
  return false;
#undef DO_
}

void ClientPageReqBody::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:ClientPageReqBody)
  // int32 pageIndex = 1;
  if (this->pageindex() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->pageindex(), output);
  }

  // int32 pageSize = 2;
  if (this->pagesize() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->pagesize(), output);
  }

  // string group = 3;
  if (this->group().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->group().data(), this->group().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ClientPageReqBody.group");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->group(), output);
  }

  // @@protoc_insertion_point(serialize_end:ClientPageReqBody)
}

::google::protobuf::uint8* ClientPageReqBody::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:ClientPageReqBody)
  // int32 pageIndex = 1;
  if (this->pageindex() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->pageindex(), target);
  }

  // int32 pageSize = 2;
  if (this->pagesize() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->pagesize(), target);
  }

  // string group = 3;
  if (this->group().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->group().data(), this->group().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "ClientPageReqBody.group");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->group(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:ClientPageReqBody)
  return target;
}

size_t ClientPageReqBody::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:ClientPageReqBody)
  size_t total_size = 0;

  // string group = 3;
  if (this->group().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->group());
  }

  // int32 pageIndex = 1;
  if (this->pageindex() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->pageindex());
  }

  // int32 pageSize = 2;
  if (this->pagesize() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->pagesize());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientPageReqBody::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:ClientPageReqBody)
  GOOGLE_DCHECK_NE(&from, this);
  const ClientPageReqBody* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ClientPageReqBody>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ClientPageReqBody)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:ClientPageReqBody)
    MergeFrom(*source);
  }
}

void ClientPageReqBody::MergeFrom(const ClientPageReqBody& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:ClientPageReqBody)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.group().size() > 0) {

    group_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.group_);
  }
  if (from.pageindex() != 0) {
    set_pageindex(from.pageindex());
  }
  if (from.pagesize() != 0) {
    set_pagesize(from.pagesize());
  }
}

void ClientPageReqBody::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:ClientPageReqBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ClientPageReqBody::CopyFrom(const ClientPageReqBody& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:ClientPageReqBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientPageReqBody::IsInitialized() const {
  return true;
}

void ClientPageReqBody::Swap(ClientPageReqBody* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ClientPageReqBody::InternalSwap(ClientPageReqBody* other) {
  group_.Swap(&other->group_);
  std::swap(pageindex_, other->pageindex_);
  std::swap(pagesize_, other->pagesize_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ClientPageReqBody::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[12];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ClientPageReqBody

// int32 pageIndex = 1;
void ClientPageReqBody::clear_pageindex() {
  pageindex_ = 0;
}
::google::protobuf::int32 ClientPageReqBody::pageindex() const {
  // @@protoc_insertion_point(field_get:ClientPageReqBody.pageIndex)
  return pageindex_;
}
void ClientPageReqBody::set_pageindex(::google::protobuf::int32 value) {
  
  pageindex_ = value;
  // @@protoc_insertion_point(field_set:ClientPageReqBody.pageIndex)
}

// int32 pageSize = 2;
void ClientPageReqBody::clear_pagesize() {
  pagesize_ = 0;
}
::google::protobuf::int32 ClientPageReqBody::pagesize() const {
  // @@protoc_insertion_point(field_get:ClientPageReqBody.pageSize)
  return pagesize_;
}
void ClientPageReqBody::set_pagesize(::google::protobuf::int32 value) {
  
  pagesize_ = value;
  // @@protoc_insertion_point(field_set:ClientPageReqBody.pageSize)
}

// string group = 3;
void ClientPageReqBody::clear_group() {
  group_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& ClientPageReqBody::group() const {
  // @@protoc_insertion_point(field_get:ClientPageReqBody.group)
  return group_.GetNoArena();
}
void ClientPageReqBody::set_group(const ::std::string& value) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:ClientPageReqBody.group)
}
#if LANG_CXX11
void ClientPageReqBody::set_group(::std::string&& value) {
  
  group_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:ClientPageReqBody.group)
}
#endif
void ClientPageReqBody::set_group(const char* value) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:ClientPageReqBody.group)
}
void ClientPageReqBody::set_group(const char* value, size_t size) {
  
  group_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:ClientPageReqBody.group)
}
::std::string* ClientPageReqBody::mutable_group() {
  
  // @@protoc_insertion_point(field_mutable:ClientPageReqBody.group)
  return group_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ClientPageReqBody::release_group() {
  // @@protoc_insertion_point(field_release:ClientPageReqBody.group)
  
  return group_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ClientPageReqBody::set_allocated_group(::std::string* group) {
  if (group != NULL) {
    
  } else {
    
  }
  group_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), group);
  // @@protoc_insertion_point(field_set_allocated:ClientPageReqBody.group)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ClientPageRespBody::kPageIndexFieldNumber;
const int ClientPageRespBody::kPageSizeFieldNumber;
const int ClientPageRespBody::kRecordCountFieldNumber;
const int ClientPageRespBody::kClientsFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ClientPageRespBody::ClientPageRespBody()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:ClientPageRespBody)
}
ClientPageRespBody::ClientPageRespBody(const ClientPageRespBody& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      clients_(from.clients_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&pageindex_, &from.pageindex_,
    reinterpret_cast<char*>(&recordcount_) -
    reinterpret_cast<char*>(&pageindex_) + sizeof(recordcount_));
  // @@protoc_insertion_point(copy_constructor:ClientPageRespBody)
}

void ClientPageRespBody::SharedCtor() {
  ::memset(&pageindex_, 0, reinterpret_cast<char*>(&recordcount_) -
    reinterpret_cast<char*>(&pageindex_) + sizeof(recordcount_));
  _cached_size_ = 0;
}

ClientPageRespBody::~ClientPageRespBody() {
  // @@protoc_insertion_point(destructor:ClientPageRespBody)
  SharedDtor();
}

void ClientPageRespBody::SharedDtor() {
}

void ClientPageRespBody::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ClientPageRespBody::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[13].descriptor;
}

const ClientPageRespBody& ClientPageRespBody::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

ClientPageRespBody* ClientPageRespBody::New(::google::protobuf::Arena* arena) const {
  ClientPageRespBody* n = new ClientPageRespBody;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ClientPageRespBody::Clear() {
// @@protoc_insertion_point(message_clear_start:ClientPageRespBody)
  clients_.Clear();
  ::memset(&pageindex_, 0, reinterpret_cast<char*>(&recordcount_) -
    reinterpret_cast<char*>(&pageindex_) + sizeof(recordcount_));
}

bool ClientPageRespBody::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:ClientPageRespBody)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // int32 pageIndex = 1;
      case 1: {
        if (tag == 8u) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &pageindex_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 pageSize = 2;
      case 2: {
        if (tag == 16u) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &pagesize_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 recordCount = 3;
      case 3: {
        if (tag == 24u) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &recordcount_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .Client clients = 4;
      case 4: {
        if (tag == 34u) {
          DO_(input->IncrementRecursionDepth());
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
                input, add_clients()));
        } else {
          goto handle_unusual;
        }
        input->UnsafeDecrementRecursionDepth();
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:ClientPageRespBody)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:ClientPageRespBody)
  return false;
#undef DO_
}

void ClientPageRespBody::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:ClientPageRespBody)
  // int32 pageIndex = 1;
  if (this->pageindex() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->pageindex(), output);
  }

  // int32 pageSize = 2;
  if (this->pagesize() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->pagesize(), output);
  }

  // int32 recordCount = 3;
  if (this->recordcount() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->recordcount(), output);
  }

  // repeated .Client clients = 4;
  for (unsigned int i = 0, n = this->clients_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, this->clients(i), output);
  }

  // @@protoc_insertion_point(serialize_end:ClientPageRespBody)
}

::google::protobuf::uint8* ClientPageRespBody::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:ClientPageRespBody)
  // int32 pageIndex = 1;
  if (this->pageindex() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->pageindex(), target);
  }

  // int32 pageSize = 2;
  if (this->pagesize() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->pagesize(), target);
  }

  // int32 recordCount = 3;
  if (this->recordcount() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->recordcount(), target);
  }

  // repeated .Client clients = 4;
  for (unsigned int i = 0, n = this->clients_size(); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        4, this->clients(i), false, target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:ClientPageRespBody)
  return target;
}

size_t ClientPageRespBody::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:ClientPageRespBody)
  size_t total_size = 0;

  // repeated .Client clients = 4;
  {
    unsigned int count = this->clients_size();
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->clients(i));
    }
  }

  // int32 pageIndex = 1;
  if (this->pageindex() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->pageindex());
  }

  // int32 pageSize = 2;
  if (this->pagesize() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->pagesize());
  }

  // int32 recordCount = 3;
  if (this->recordcount() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->recordcount());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ClientPageRespBody::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:ClientPageRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  const ClientPageRespBody* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ClientPageRespBody>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:ClientPageRespBody)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:ClientPageRespBody)
    MergeFrom(*source);
  }
}

void ClientPageRespBody::MergeFrom(const ClientPageRespBody& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:ClientPageRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  clients_.MergeFrom(from.clients_);
  if (from.pageindex() != 0) {
    set_pageindex(from.pageindex());
  }
  if (from.pagesize() != 0) {
    set_pagesize(from.pagesize());
  }
  if (from.recordcount() != 0) {
    set_recordcount(from.recordcount());
  }
}

void ClientPageRespBody::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:ClientPageRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ClientPageRespBody::CopyFrom(const ClientPageRespBody& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:ClientPageRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ClientPageRespBody::IsInitialized() const {
  return true;
}

void ClientPageRespBody::Swap(ClientPageRespBody* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ClientPageRespBody::InternalSwap(ClientPageRespBody* other) {
  clients_.UnsafeArenaSwap(&other->clients_);
  std::swap(pageindex_, other->pageindex_);
  std::swap(pagesize_, other->pagesize_);
  std::swap(recordcount_, other->recordcount_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ClientPageRespBody::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[13];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ClientPageRespBody

// int32 pageIndex = 1;
void ClientPageRespBody::clear_pageindex() {
  pageindex_ = 0;
}
::google::protobuf::int32 ClientPageRespBody::pageindex() const {
  // @@protoc_insertion_point(field_get:ClientPageRespBody.pageIndex)
  return pageindex_;
}
void ClientPageRespBody::set_pageindex(::google::protobuf::int32 value) {
  
  pageindex_ = value;
  // @@protoc_insertion_point(field_set:ClientPageRespBody.pageIndex)
}

// int32 pageSize = 2;
void ClientPageRespBody::clear_pagesize() {
  pagesize_ = 0;
}
::google::protobuf::int32 ClientPageRespBody::pagesize() const {
  // @@protoc_insertion_point(field_get:ClientPageRespBody.pageSize)
  return pagesize_;
}
void ClientPageRespBody::set_pagesize(::google::protobuf::int32 value) {
  
  pagesize_ = value;
  // @@protoc_insertion_point(field_set:ClientPageRespBody.pageSize)
}

// int32 recordCount = 3;
void ClientPageRespBody::clear_recordcount() {
  recordcount_ = 0;
}
::google::protobuf::int32 ClientPageRespBody::recordcount() const {
  // @@protoc_insertion_point(field_get:ClientPageRespBody.recordCount)
  return recordcount_;
}
void ClientPageRespBody::set_recordcount(::google::protobuf::int32 value) {
  
  recordcount_ = value;
  // @@protoc_insertion_point(field_set:ClientPageRespBody.recordCount)
}

// repeated .Client clients = 4;
int ClientPageRespBody::clients_size() const {
  return clients_.size();
}
void ClientPageRespBody::clear_clients() {
  clients_.Clear();
}
const ::Client& ClientPageRespBody::clients(int index) const {
  // @@protoc_insertion_point(field_get:ClientPageRespBody.clients)
  return clients_.Get(index);
}
::Client* ClientPageRespBody::mutable_clients(int index) {
  // @@protoc_insertion_point(field_mutable:ClientPageRespBody.clients)
  return clients_.Mutable(index);
}
::Client* ClientPageRespBody::add_clients() {
  // @@protoc_insertion_point(field_add:ClientPageRespBody.clients)
  return clients_.Add();
}
::google::protobuf::RepeatedPtrField< ::Client >*
ClientPageRespBody::mutable_clients() {
  // @@protoc_insertion_point(field_mutable_list:ClientPageRespBody.clients)
  return &clients_;
}
const ::google::protobuf::RepeatedPtrField< ::Client >&
ClientPageRespBody::clients() const {
  // @@protoc_insertion_point(field_list:ClientPageRespBody.clients)
  return clients_;
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int BeginToLiveReqBody::kTimeFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

BeginToLiveReqBody::BeginToLiveReqBody()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:BeginToLiveReqBody)
}
BeginToLiveReqBody::BeginToLiveReqBody(const BeginToLiveReqBody& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  time_ = from.time_;
  // @@protoc_insertion_point(copy_constructor:BeginToLiveReqBody)
}

void BeginToLiveReqBody::SharedCtor() {
  time_ = GOOGLE_LONGLONG(0);
  _cached_size_ = 0;
}

BeginToLiveReqBody::~BeginToLiveReqBody() {
  // @@protoc_insertion_point(destructor:BeginToLiveReqBody)
  SharedDtor();
}

void BeginToLiveReqBody::SharedDtor() {
}

void BeginToLiveReqBody::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* BeginToLiveReqBody::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[14].descriptor;
}

const BeginToLiveReqBody& BeginToLiveReqBody::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

BeginToLiveReqBody* BeginToLiveReqBody::New(::google::protobuf::Arena* arena) const {
  BeginToLiveReqBody* n = new BeginToLiveReqBody;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void BeginToLiveReqBody::Clear() {
// @@protoc_insertion_point(message_clear_start:BeginToLiveReqBody)
  time_ = GOOGLE_LONGLONG(0);
}

bool BeginToLiveReqBody::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:BeginToLiveReqBody)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // int64 time = 1;
      case 1: {
        if (tag == 8u) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &time_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:BeginToLiveReqBody)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:BeginToLiveReqBody)
  return false;
#undef DO_
}

void BeginToLiveReqBody::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:BeginToLiveReqBody)
  // int64 time = 1;
  if (this->time() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->time(), output);
  }

  // @@protoc_insertion_point(serialize_end:BeginToLiveReqBody)
}

::google::protobuf::uint8* BeginToLiveReqBody::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:BeginToLiveReqBody)
  // int64 time = 1;
  if (this->time() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->time(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:BeginToLiveReqBody)
  return target;
}

size_t BeginToLiveReqBody::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:BeginToLiveReqBody)
  size_t total_size = 0;

  // int64 time = 1;
  if (this->time() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->time());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void BeginToLiveReqBody::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:BeginToLiveReqBody)
  GOOGLE_DCHECK_NE(&from, this);
  const BeginToLiveReqBody* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const BeginToLiveReqBody>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:BeginToLiveReqBody)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:BeginToLiveReqBody)
    MergeFrom(*source);
  }
}

void BeginToLiveReqBody::MergeFrom(const BeginToLiveReqBody& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:BeginToLiveReqBody)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.time() != 0) {
    set_time(from.time());
  }
}

void BeginToLiveReqBody::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:BeginToLiveReqBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void BeginToLiveReqBody::CopyFrom(const BeginToLiveReqBody& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:BeginToLiveReqBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool BeginToLiveReqBody::IsInitialized() const {
  return true;
}

void BeginToLiveReqBody::Swap(BeginToLiveReqBody* other) {
  if (other == this) return;
  InternalSwap(other);
}
void BeginToLiveReqBody::InternalSwap(BeginToLiveReqBody* other) {
  std::swap(time_, other->time_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata BeginToLiveReqBody::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[14];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// BeginToLiveReqBody

// int64 time = 1;
void BeginToLiveReqBody::clear_time() {
  time_ = GOOGLE_LONGLONG(0);
}
::google::protobuf::int64 BeginToLiveReqBody::time() const {
  // @@protoc_insertion_point(field_get:BeginToLiveReqBody.time)
  return time_;
}
void BeginToLiveReqBody::set_time(::google::protobuf::int64 value) {
  
  time_ = value;
  // @@protoc_insertion_point(field_set:BeginToLiveReqBody.time)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int BeginToLiveRespBody::kTimeFieldNumber;
const int BeginToLiveRespBody::kLiveidFieldNumber;
const int BeginToLiveRespBody::kRtmppublishurlFieldNumber;
const int BeginToLiveRespBody::kRtmpliveurlFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

BeginToLiveRespBody::BeginToLiveRespBody()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:BeginToLiveRespBody)
}
BeginToLiveRespBody::BeginToLiveRespBody(const BeginToLiveRespBody& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  rtmppublishurl_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.rtmppublishurl().size() > 0) {
    rtmppublishurl_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.rtmppublishurl_);
  }
  rtmpliveurl_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.rtmpliveurl().size() > 0) {
    rtmpliveurl_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.rtmpliveurl_);
  }
  ::memcpy(&time_, &from.time_,
    reinterpret_cast<char*>(&liveid_) -
    reinterpret_cast<char*>(&time_) + sizeof(liveid_));
  // @@protoc_insertion_point(copy_constructor:BeginToLiveRespBody)
}

void BeginToLiveRespBody::SharedCtor() {
  rtmppublishurl_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  rtmpliveurl_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&time_, 0, reinterpret_cast<char*>(&liveid_) -
    reinterpret_cast<char*>(&time_) + sizeof(liveid_));
  _cached_size_ = 0;
}

BeginToLiveRespBody::~BeginToLiveRespBody() {
  // @@protoc_insertion_point(destructor:BeginToLiveRespBody)
  SharedDtor();
}

void BeginToLiveRespBody::SharedDtor() {
  rtmppublishurl_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  rtmpliveurl_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void BeginToLiveRespBody::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* BeginToLiveRespBody::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[15].descriptor;
}

const BeginToLiveRespBody& BeginToLiveRespBody::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

BeginToLiveRespBody* BeginToLiveRespBody::New(::google::protobuf::Arena* arena) const {
  BeginToLiveRespBody* n = new BeginToLiveRespBody;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void BeginToLiveRespBody::Clear() {
// @@protoc_insertion_point(message_clear_start:BeginToLiveRespBody)
  rtmppublishurl_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  rtmpliveurl_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&time_, 0, reinterpret_cast<char*>(&liveid_) -
    reinterpret_cast<char*>(&time_) + sizeof(liveid_));
}

bool BeginToLiveRespBody::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:BeginToLiveRespBody)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // int64 time = 1;
      case 1: {
        if (tag == 8u) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &time_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 liveid = 2;
      case 2: {
        if (tag == 16u) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &liveid_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string rtmppublishurl = 3;
      case 3: {
        if (tag == 26u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_rtmppublishurl()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->rtmppublishurl().data(), this->rtmppublishurl().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "BeginToLiveRespBody.rtmppublishurl"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string rtmpliveurl = 4;
      case 4: {
        if (tag == 34u) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_rtmpliveurl()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->rtmpliveurl().data(), this->rtmpliveurl().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "BeginToLiveRespBody.rtmpliveurl"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:BeginToLiveRespBody)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:BeginToLiveRespBody)
  return false;
#undef DO_
}

void BeginToLiveRespBody::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:BeginToLiveRespBody)
  // int64 time = 1;
  if (this->time() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->time(), output);
  }

  // int64 liveid = 2;
  if (this->liveid() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(2, this->liveid(), output);
  }

  // string rtmppublishurl = 3;
  if (this->rtmppublishurl().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->rtmppublishurl().data(), this->rtmppublishurl().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "BeginToLiveRespBody.rtmppublishurl");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->rtmppublishurl(), output);
  }

  // string rtmpliveurl = 4;
  if (this->rtmpliveurl().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->rtmpliveurl().data(), this->rtmpliveurl().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "BeginToLiveRespBody.rtmpliveurl");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->rtmpliveurl(), output);
  }

  // @@protoc_insertion_point(serialize_end:BeginToLiveRespBody)
}

::google::protobuf::uint8* BeginToLiveRespBody::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:BeginToLiveRespBody)
  // int64 time = 1;
  if (this->time() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->time(), target);
  }

  // int64 liveid = 2;
  if (this->liveid() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(2, this->liveid(), target);
  }

  // string rtmppublishurl = 3;
  if (this->rtmppublishurl().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->rtmppublishurl().data(), this->rtmppublishurl().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "BeginToLiveRespBody.rtmppublishurl");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->rtmppublishurl(), target);
  }

  // string rtmpliveurl = 4;
  if (this->rtmpliveurl().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->rtmpliveurl().data(), this->rtmpliveurl().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "BeginToLiveRespBody.rtmpliveurl");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->rtmpliveurl(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:BeginToLiveRespBody)
  return target;
}

size_t BeginToLiveRespBody::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:BeginToLiveRespBody)
  size_t total_size = 0;

  // string rtmppublishurl = 3;
  if (this->rtmppublishurl().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->rtmppublishurl());
  }

  // string rtmpliveurl = 4;
  if (this->rtmpliveurl().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->rtmpliveurl());
  }

  // int64 time = 1;
  if (this->time() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->time());
  }

  // int64 liveid = 2;
  if (this->liveid() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->liveid());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void BeginToLiveRespBody::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:BeginToLiveRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  const BeginToLiveRespBody* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const BeginToLiveRespBody>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:BeginToLiveRespBody)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:BeginToLiveRespBody)
    MergeFrom(*source);
  }
}

void BeginToLiveRespBody::MergeFrom(const BeginToLiveRespBody& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:BeginToLiveRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.rtmppublishurl().size() > 0) {

    rtmppublishurl_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.rtmppublishurl_);
  }
  if (from.rtmpliveurl().size() > 0) {

    rtmpliveurl_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.rtmpliveurl_);
  }
  if (from.time() != 0) {
    set_time(from.time());
  }
  if (from.liveid() != 0) {
    set_liveid(from.liveid());
  }
}

void BeginToLiveRespBody::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:BeginToLiveRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void BeginToLiveRespBody::CopyFrom(const BeginToLiveRespBody& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:BeginToLiveRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool BeginToLiveRespBody::IsInitialized() const {
  return true;
}

void BeginToLiveRespBody::Swap(BeginToLiveRespBody* other) {
  if (other == this) return;
  InternalSwap(other);
}
void BeginToLiveRespBody::InternalSwap(BeginToLiveRespBody* other) {
  rtmppublishurl_.Swap(&other->rtmppublishurl_);
  rtmpliveurl_.Swap(&other->rtmpliveurl_);
  std::swap(time_, other->time_);
  std::swap(liveid_, other->liveid_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata BeginToLiveRespBody::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[15];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// BeginToLiveRespBody

// int64 time = 1;
void BeginToLiveRespBody::clear_time() {
  time_ = GOOGLE_LONGLONG(0);
}
::google::protobuf::int64 BeginToLiveRespBody::time() const {
  // @@protoc_insertion_point(field_get:BeginToLiveRespBody.time)
  return time_;
}
void BeginToLiveRespBody::set_time(::google::protobuf::int64 value) {
  
  time_ = value;
  // @@protoc_insertion_point(field_set:BeginToLiveRespBody.time)
}

// int64 liveid = 2;
void BeginToLiveRespBody::clear_liveid() {
  liveid_ = GOOGLE_LONGLONG(0);
}
::google::protobuf::int64 BeginToLiveRespBody::liveid() const {
  // @@protoc_insertion_point(field_get:BeginToLiveRespBody.liveid)
  return liveid_;
}
void BeginToLiveRespBody::set_liveid(::google::protobuf::int64 value) {
  
  liveid_ = value;
  // @@protoc_insertion_point(field_set:BeginToLiveRespBody.liveid)
}

// string rtmppublishurl = 3;
void BeginToLiveRespBody::clear_rtmppublishurl() {
  rtmppublishurl_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& BeginToLiveRespBody::rtmppublishurl() const {
  // @@protoc_insertion_point(field_get:BeginToLiveRespBody.rtmppublishurl)
  return rtmppublishurl_.GetNoArena();
}
void BeginToLiveRespBody::set_rtmppublishurl(const ::std::string& value) {
  
  rtmppublishurl_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:BeginToLiveRespBody.rtmppublishurl)
}
#if LANG_CXX11
void BeginToLiveRespBody::set_rtmppublishurl(::std::string&& value) {
  
  rtmppublishurl_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:BeginToLiveRespBody.rtmppublishurl)
}
#endif
void BeginToLiveRespBody::set_rtmppublishurl(const char* value) {
  
  rtmppublishurl_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:BeginToLiveRespBody.rtmppublishurl)
}
void BeginToLiveRespBody::set_rtmppublishurl(const char* value, size_t size) {
  
  rtmppublishurl_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:BeginToLiveRespBody.rtmppublishurl)
}
::std::string* BeginToLiveRespBody::mutable_rtmppublishurl() {
  
  // @@protoc_insertion_point(field_mutable:BeginToLiveRespBody.rtmppublishurl)
  return rtmppublishurl_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* BeginToLiveRespBody::release_rtmppublishurl() {
  // @@protoc_insertion_point(field_release:BeginToLiveRespBody.rtmppublishurl)
  
  return rtmppublishurl_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void BeginToLiveRespBody::set_allocated_rtmppublishurl(::std::string* rtmppublishurl) {
  if (rtmppublishurl != NULL) {
    
  } else {
    
  }
  rtmppublishurl_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), rtmppublishurl);
  // @@protoc_insertion_point(field_set_allocated:BeginToLiveRespBody.rtmppublishurl)
}

// string rtmpliveurl = 4;
void BeginToLiveRespBody::clear_rtmpliveurl() {
  rtmpliveurl_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& BeginToLiveRespBody::rtmpliveurl() const {
  // @@protoc_insertion_point(field_get:BeginToLiveRespBody.rtmpliveurl)
  return rtmpliveurl_.GetNoArena();
}
void BeginToLiveRespBody::set_rtmpliveurl(const ::std::string& value) {
  
  rtmpliveurl_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:BeginToLiveRespBody.rtmpliveurl)
}
#if LANG_CXX11
void BeginToLiveRespBody::set_rtmpliveurl(::std::string&& value) {
  
  rtmpliveurl_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:BeginToLiveRespBody.rtmpliveurl)
}
#endif
void BeginToLiveRespBody::set_rtmpliveurl(const char* value) {
  
  rtmpliveurl_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:BeginToLiveRespBody.rtmpliveurl)
}
void BeginToLiveRespBody::set_rtmpliveurl(const char* value, size_t size) {
  
  rtmpliveurl_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:BeginToLiveRespBody.rtmpliveurl)
}
::std::string* BeginToLiveRespBody::mutable_rtmpliveurl() {
  
  // @@protoc_insertion_point(field_mutable:BeginToLiveRespBody.rtmpliveurl)
  return rtmpliveurl_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* BeginToLiveRespBody::release_rtmpliveurl() {
  // @@protoc_insertion_point(field_release:BeginToLiveRespBody.rtmpliveurl)
  
  return rtmpliveurl_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void BeginToLiveRespBody::set_allocated_rtmpliveurl(::std::string* rtmpliveurl) {
  if (rtmpliveurl != NULL) {
    
  } else {
    
  }
  rtmpliveurl_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), rtmpliveurl);
  // @@protoc_insertion_point(field_set_allocated:BeginToLiveRespBody.rtmpliveurl)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int EndLiveReqBody::kTimeFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

EndLiveReqBody::EndLiveReqBody()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:EndLiveReqBody)
}
EndLiveReqBody::EndLiveReqBody(const EndLiveReqBody& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  time_ = from.time_;
  // @@protoc_insertion_point(copy_constructor:EndLiveReqBody)
}

void EndLiveReqBody::SharedCtor() {
  time_ = GOOGLE_LONGLONG(0);
  _cached_size_ = 0;
}

EndLiveReqBody::~EndLiveReqBody() {
  // @@protoc_insertion_point(destructor:EndLiveReqBody)
  SharedDtor();
}

void EndLiveReqBody::SharedDtor() {
}

void EndLiveReqBody::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* EndLiveReqBody::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[16].descriptor;
}

const EndLiveReqBody& EndLiveReqBody::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

EndLiveReqBody* EndLiveReqBody::New(::google::protobuf::Arena* arena) const {
  EndLiveReqBody* n = new EndLiveReqBody;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void EndLiveReqBody::Clear() {
// @@protoc_insertion_point(message_clear_start:EndLiveReqBody)
  time_ = GOOGLE_LONGLONG(0);
}

bool EndLiveReqBody::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:EndLiveReqBody)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // int64 time = 1;
      case 1: {
        if (tag == 8u) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &time_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:EndLiveReqBody)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:EndLiveReqBody)
  return false;
#undef DO_
}

void EndLiveReqBody::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:EndLiveReqBody)
  // int64 time = 1;
  if (this->time() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->time(), output);
  }

  // @@protoc_insertion_point(serialize_end:EndLiveReqBody)
}

::google::protobuf::uint8* EndLiveReqBody::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:EndLiveReqBody)
  // int64 time = 1;
  if (this->time() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->time(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:EndLiveReqBody)
  return target;
}

size_t EndLiveReqBody::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:EndLiveReqBody)
  size_t total_size = 0;

  // int64 time = 1;
  if (this->time() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->time());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void EndLiveReqBody::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:EndLiveReqBody)
  GOOGLE_DCHECK_NE(&from, this);
  const EndLiveReqBody* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const EndLiveReqBody>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:EndLiveReqBody)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:EndLiveReqBody)
    MergeFrom(*source);
  }
}

void EndLiveReqBody::MergeFrom(const EndLiveReqBody& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:EndLiveReqBody)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.time() != 0) {
    set_time(from.time());
  }
}

void EndLiveReqBody::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:EndLiveReqBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EndLiveReqBody::CopyFrom(const EndLiveReqBody& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:EndLiveReqBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EndLiveReqBody::IsInitialized() const {
  return true;
}

void EndLiveReqBody::Swap(EndLiveReqBody* other) {
  if (other == this) return;
  InternalSwap(other);
}
void EndLiveReqBody::InternalSwap(EndLiveReqBody* other) {
  std::swap(time_, other->time_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata EndLiveReqBody::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[16];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// EndLiveReqBody

// int64 time = 1;
void EndLiveReqBody::clear_time() {
  time_ = GOOGLE_LONGLONG(0);
}
::google::protobuf::int64 EndLiveReqBody::time() const {
  // @@protoc_insertion_point(field_get:EndLiveReqBody.time)
  return time_;
}
void EndLiveReqBody::set_time(::google::protobuf::int64 value) {
  
  time_ = value;
  // @@protoc_insertion_point(field_set:EndLiveReqBody.time)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int EndLiveRespBody::kTimeFieldNumber;
const int EndLiveRespBody::kLiveidFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

EndLiveRespBody::EndLiveRespBody()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_chat_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:EndLiveRespBody)
}
EndLiveRespBody::EndLiveRespBody(const EndLiveRespBody& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&time_, &from.time_,
    reinterpret_cast<char*>(&liveid_) -
    reinterpret_cast<char*>(&time_) + sizeof(liveid_));
  // @@protoc_insertion_point(copy_constructor:EndLiveRespBody)
}

void EndLiveRespBody::SharedCtor() {
  ::memset(&time_, 0, reinterpret_cast<char*>(&liveid_) -
    reinterpret_cast<char*>(&time_) + sizeof(liveid_));
  _cached_size_ = 0;
}

EndLiveRespBody::~EndLiveRespBody() {
  // @@protoc_insertion_point(destructor:EndLiveRespBody)
  SharedDtor();
}

void EndLiveRespBody::SharedDtor() {
}

void EndLiveRespBody::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* EndLiveRespBody::descriptor() {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[17].descriptor;
}

const EndLiveRespBody& EndLiveRespBody::default_instance() {
  protobuf_chat_2eproto::InitDefaults();
  return *internal_default_instance();
}

EndLiveRespBody* EndLiveRespBody::New(::google::protobuf::Arena* arena) const {
  EndLiveRespBody* n = new EndLiveRespBody;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void EndLiveRespBody::Clear() {
// @@protoc_insertion_point(message_clear_start:EndLiveRespBody)
  ::memset(&time_, 0, reinterpret_cast<char*>(&liveid_) -
    reinterpret_cast<char*>(&time_) + sizeof(liveid_));
}

bool EndLiveRespBody::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:EndLiveRespBody)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // int64 time = 1;
      case 1: {
        if (tag == 8u) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &time_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 liveid = 2;
      case 2: {
        if (tag == 16u) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &liveid_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:EndLiveRespBody)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:EndLiveRespBody)
  return false;
#undef DO_
}

void EndLiveRespBody::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:EndLiveRespBody)
  // int64 time = 1;
  if (this->time() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->time(), output);
  }

  // int64 liveid = 2;
  if (this->liveid() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(2, this->liveid(), output);
  }

  // @@protoc_insertion_point(serialize_end:EndLiveRespBody)
}

::google::protobuf::uint8* EndLiveRespBody::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic;  // Unused
  // @@protoc_insertion_point(serialize_to_array_start:EndLiveRespBody)
  // int64 time = 1;
  if (this->time() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->time(), target);
  }

  // int64 liveid = 2;
  if (this->liveid() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(2, this->liveid(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:EndLiveRespBody)
  return target;
}

size_t EndLiveRespBody::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:EndLiveRespBody)
  size_t total_size = 0;

  // int64 time = 1;
  if (this->time() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->time());
  }

  // int64 liveid = 2;
  if (this->liveid() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->liveid());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void EndLiveRespBody::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:EndLiveRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  const EndLiveRespBody* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const EndLiveRespBody>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:EndLiveRespBody)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:EndLiveRespBody)
    MergeFrom(*source);
  }
}

void EndLiveRespBody::MergeFrom(const EndLiveRespBody& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:EndLiveRespBody)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.time() != 0) {
    set_time(from.time());
  }
  if (from.liveid() != 0) {
    set_liveid(from.liveid());
  }
}

void EndLiveRespBody::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:EndLiveRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void EndLiveRespBody::CopyFrom(const EndLiveRespBody& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:EndLiveRespBody)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool EndLiveRespBody::IsInitialized() const {
  return true;
}

void EndLiveRespBody::Swap(EndLiveRespBody* other) {
  if (other == this) return;
  InternalSwap(other);
}
void EndLiveRespBody::InternalSwap(EndLiveRespBody* other) {
  std::swap(time_, other->time_);
  std::swap(liveid_, other->liveid_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata EndLiveRespBody::GetMetadata() const {
  protobuf_chat_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_chat_2eproto::file_level_metadata[17];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// EndLiveRespBody

// int64 time = 1;
void EndLiveRespBody::clear_time() {
  time_ = GOOGLE_LONGLONG(0);
}
::google::protobuf::int64 EndLiveRespBody::time() const {
  // @@protoc_insertion_point(field_get:EndLiveRespBody.time)
  return time_;
}
void EndLiveRespBody::set_time(::google::protobuf::int64 value) {
  
  time_ = value;
  // @@protoc_insertion_point(field_set:EndLiveRespBody.time)
}

// int64 liveid = 2;
void EndLiveRespBody::clear_liveid() {
  liveid_ = GOOGLE_LONGLONG(0);
}
::google::protobuf::int64 EndLiveRespBody::liveid() const {
  // @@protoc_insertion_point(field_get:EndLiveRespBody.liveid)
  return liveid_;
}
void EndLiveRespBody::set_liveid(::google::protobuf::int64 value) {
  
  liveid_ = value;
  // @@protoc_insertion_point(field_set:EndLiveRespBody.liveid)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// @@protoc_insertion_point(namespace_scope)

// @@protoc_insertion_point(global_scope)
